SetIntegrityCheck из адаптера БД в Zend

Привет, я хочу использовать соединение в zend db select. Я знаю, что setintegritycheck() важен в соединениях. Я знаю, как это реализовать, когда у меня есть объект модели, например

$select = $this->select();
$select->setintegritycheck(false);
$select->from(array('info'),array())
            ->join(array('cfields'),'info.class=cfields.class_id',array('field_id','type_id'))
            ->where('info.id=2');

Но в моем случае я не в модели. У меня dbadapter. Теперь я пишу свой запрос следующим образом

    $dbAdapter = MyManager::getDbAdapator('project');
    $select = $dbAdapter->select('info');

    $select->setIntegrityCheck(false);
    $select->from(array('info'),array())
            ->join(array('cfields'),'info.class=cfields.class_id',array('field_id','type_id'))
            ->where('info.id=2');

Линия

$dbAdapter = MyManager::getDbAdapator('project');

возвращает адаптер базы данных проекта, я его сертифицировал. Теперь в этом случае мой выбранный объект из адаптера БД, поэтому, когда я пытаюсь получить setintegritycheck, он генерирует ошибку

Unrecognized method 'setIntegrityCheck()' 

Могу ли я сказать мне, как я могу поставить проверку целостности в этом случае.


person Awais Qarni    schedule 04.03.2013    source источник


Ответы (1)


setIntegrityCheck() — это метод для Zend_Db_Table_Select. Если вы создаете выбор из адаптера БД, вместо этого вы используете Zend_Db_Select, и проверка целостности отсутствует, поэтому вам не нужно беспокоиться об его отключении.

Проверка целостности проверяет, соответствуют ли столбцы, возвращаемые запросом, столбцам в таблице, поэтому это имеет смысл только в контексте Zend_Db_Table.

person Tim Fountain    schedule 04.03.2013