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');

プロジェクトデータベースのアダプターを返します。私はそれを確認しました。この場合、私の選択オブジェクトはdbアダプタからのものであるため、取得しようとsetintegritycheckするとエラーが発生します

Unrecognized method 'setIntegrityCheck()' 

この場合、どのように整合性チェックを入れることができるか教えてもらえますか。

4

1 に答える 1

1

setIntegrityCheck()上の方法Zend_Db_Table_Selectです。DB アダプターから選択を構築している場合は、Zend_Db_Select代わりに使用しており、整合性チェックがないため、無効にすることを心配する必要はありません。

整合性チェックは、クエリによって返された列がテーブルの列と一致することを確認するため、 のコンテキストでのみ意味がありますZend_Db_Table

于 2013-03-04T11:03:55.233 に答える