您好我想在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');
返回项目数据库的适配器,我已经搞砸了。现在在这种情况下,我的select对象来自db adapter,所以当我尝试获取setintegritycheck
时,它会生成错误
Unrecognized method 'setIntegrityCheck()'
我可以告诉我在这种情况下如何进行完整性检查。
答案 0 :(得分:1)
setIntegrityCheck()
是Zend_Db_Table_Select
上的一种方法。如果要从数据库适配器构建选择,则使用Zend_Db_Select
代替,并且没有完整性检查,因此您无需担心禁用它。
完整性检查检查查询返回的列是否与表上的列匹配,因此仅在Zend_Db_Table
的上下文中有意义。