7

Zend_Db_Select'son句にパラメータ置換があるようには見えません。

私が次のようなことをすることができないのは非常に迷惑です:

$select->joinLeft('st_line_item','st_line_item.order_id = st_order.id and st_line_item.status = ?')

では、流暢なインターフェース内で機能する慣用的な代替手段は何ですか?外側にjoin句を準備するようなこともできますが、それは重要ではありません。

4

2 に答える 2

11

これは機能するはずです:

$select->joinLeft(
    'st_line_item',
    $this->_db->quoteInto(
        'st_line_item.order_id = st_order.id and st_line_item.status = ?', 
        $param
    )
)

基本的に、Zend_Db_ *メソッドが自動的に実行しない変数をエスケープする場合は、Zend_Db :: quoteInto()を使用してジョブを実行します。

于 2010-02-02T20:19:03.687 に答える
1

これは私がいつもそれをする方法です、それは芸術作品ではありませんが、それは仕事を成し遂げます:

$param = $db->quote($param);
$select->joinLeft(
    'st_line_item',
    'st_line_item.order_id = st_order.id and st_line_item.status = ' . $param
);
于 2010-02-02T07:16:32.890 に答える