1

バインドされた変数を複数回使用する必要があるクエリがたくさんあります。簡単な例を次に示します。

$stmt = $db->prepare('SELECT SUM(col1),

                      (SELECT SUM(col2)
                      FROM table2
                      WHERE col3 > :val) as quantity

                      FROM table1
                      WHERE col4 = :val');

このようなことをすると、常にエラーが発生します。

エラー!: SQLSTATE[HY093]: パラメーター番号が無効です ...

通常、次のようなことができない理由があります

WHERE col3 = col4

つまり、バインドされた変数を複数回使用する必要がある場合があります。以前は、わずかに異なる名前で値を複数回バインドしました。

バインドされた変数を複数回使用することは可能ですか?

4

1 に答える 1

2

「わずかに異なる名前」アプローチに設定PDO::ATTR_EMULATE_PREPARESするか、使用してください。TRUEあまり変わらないけど

于 2013-08-09T21:31:32.443 に答える