2013-03-04 45 views
0

您好,我想在zend db select中使用join。我知道setintegritycheck()是加入者的重要部分。我知道如何實現它時,我有一個模型對象像Zend中來自數據庫適配器的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'); 

返回項目數據庫的適配器,我已經cerfied它。現在,在這種情況下,我的選擇對象是從數據庫適配器,所以當我試圖讓setintegritycheck它生成錯誤

Unrecognized method 'setIntegrityCheck()' 

我任何機構可以告訴我,我怎麼能在這種情況下,把integritycheck。

回答

1

setIntegrityCheck()Zend_Db_Table_Select上的方法。如果您正在構建來自數據庫適配器的選擇,則您使用的是Zend_Db_Select,並且沒有完整性檢查,因此您無需擔心禁用它。

完整性檢查檢查查詢返回的列是否匹配表上的列,因此它只在Zend_Db_Table的上下文中有意義。

相關問題