ここでは、左の結合を有効にしたり、セキュリティを向上させたりするためのいくつかのことを示します。
私は通常、複数の行にまたがってselect文を作成します。そのため、変数に入れるのが好きです。デバッグするには、私が必要としない行をコメントアウトするだけです。
$select = $firmobj->select()->from('country');
あなたはおそらく、クエリからの結果を変更してコミットされることはありませんので、あなたはsetIntegrityCheck(false)
したいと思います。 ZFのドキュメントから引用しています。
はZend_Db_Table_Selectは、主にそれが法的なSELECTクエリの基準を強制することができるように を制約し、検証するために使用されます。ただし Zend_Db_Table_Rowコンポーネントの柔軟性が必要な場合があり、書き込み可能または削除可能な行を必要としない場合があります。 この特定のユーザーの場合、FALSE値をsetIntegrityCheck()に渡すことによって行または 行セットを取得できます。あなたが参加するのはここ
$select->setIntegrityCheck(false);
です。 field1、field2、fieldnを、結果に表示するfirm_dtlテーブルのフィールドに置き換えることができます。 SQLインジェクション攻撃を避けるために
$select->joinLeft(array('c' => 'country'), 'c.id = firm_dtl.firm_country', array('field1', 'field2', 'fieldn'));
使用パラメータ置換。
$select->where('firm_name LIKE ?', "$alpha%");
最後に結果を順序付けし、行セットをフェッチします。
$select->order('firm_name');
$rowSet = $firmobj->fetchAll($select);
このコードは機能しませんか? –