これがすでに尋ねられている場合はお詫び申し上げます。静的 SQL に関する回答を見てきましたが、この場合、実行時に動的に構築されるクエリ文字列に PDO->prepare() を使用したいと思います。
簡単な例に分解します。
$TempSQL = "SELECT field1, field2, field3 FROM table WHERE ";
if ($numberParams == 1) {
$TempSQL = $TempSQL . " field1 = '$val1' ";
} else {
$TempSQL = $TempSQL . " field2 = '$val2' ";
$TempSQL = $TempSQL . " AND field3 = '$val3' ";
}
db->query($TempSQL);
これを db->prepare() として書き直すにはどうすればよいですか?
statement->execute(array(':param' => $var))) もその場で作成する必要がありますか?
より良い/きちんとした方法はありますか?