1
私はPDOについて次の疑問を持っています:PDOで準備するたびにパラメータをバインドする必要がありますか?
複数のクエリを実行する場合は、prepareを呼び出すたびにbindParamメソッドを使用する必要がありますか?
例:
$connection->prepare("SELECT * FROM table WHERE y = :y");
$connection->bindParam(":y", $y);
$connection->prepare("SELECT * FROM table2 WHERE y = :w");
$connection->bindParam(":w", $w);
OR私は、より良いような何か使用して行うことができます:
$connection->bindParam(":y", $y);
$connection->bindParam(":w", $w);
$connection->prepare("SELECT * FROM table WHERE y = :y");
$connection->prepare("SELECT * FROM table2 WHERE y = :w");
OR:
$connection->prepare("SELECT * FROM table WHERE y = :y");
$connection->prepare("SELECT * FROM table2 WHERE y = :w");
$connection->bindParam(":y", $y);
$connection->bindParam(":w", $w);
¿WICHのため、何可能ですか?もしそれらバインドbind paramsあなたが準備されたステートメントにない接続へので、これは実際に
$connection->bindParam(":w", $w);
を動作しないでしょうが、その代わりに、あなたがする必要があるだろう
シングル実行ではマルチプルクエリを実行しません。それぞれのクエリが必要であり、paramをバインドし、クエリごとに個別に実行します。 – JYoThI
これらのどれも動作しません。 'prepare'からの戻りは、準備されたステートメントです。 'bindParam'は、*接続*ではなく、*文*に関連付けられたメソッドです。プレースホルダにバインドされた変数の値は、 'execute'メソッドが呼び出されると評価されます。 PDOのドキュメントで例を確認することをお勧めします。 – spencer7593
同じパラメータで複数のクエリを実行する必要がある場合は、データベース設計が間違っている可能性が最も高いことを意味します。すべての類似したデータを1つのテーブルにするだけで、実行するクエリは1つだけ必要になります。 –