0

您好,我想在 zend db select 中使用 join。我知道这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()' 

我可以告诉我如何在这种情况下进行完整性检查。

4

1 回答 1

1

setIntegrityCheck()是一种方法Zend_Db_Table_Select。如果您正在从数据库适配器构建选择,则您正在使用它Zend_Db_Select,并且没有完整性检查,因此您无需担心禁用它。

完整性检查检查查询返回的列是否与表上的列匹配,因此它仅在Zend_Db_Table.

于 2013-03-04T11:03:55.233 回答