PHPのいくつかのMySQLクエリをPDOプリペアドステートメントクエリに変換しています。PDOプリペアドステートメント(%とconcat)
ほとんどのクエリは十分に簡単ですが、私は、クエリのカップルに遭遇していると私は彼らが私が変換しています定期的なクエリで
をどのように見えるべきかわからない:
where field ='$type'
へ
where field =:type
と変更
$results->execute();
〜
$ results-> execute(array( 'type' => $ type));
通常シナリオ1
変数となり、それらを変換する:タイプのクエリではなく、%で、それはそこになるん:タイプ%または:型 '%'
where field like '$type%'
シナリオ2
とき連結使用で
concat(uuid(),'-$id')
これはどのように処理されるのですか?変数の前に - がある場合はどうすれば処理できますか?
ご協力いただければ幸いです。
$smt->bindParam(":type", $type . '%' , PDO::PARAM_STRING);
Scenarion 2:scenarion 1あなたはシンプルなもの
$pdo = new PDO("mysql:host=localhost;dbname=database;","root","");
$smt = $pdo->prepare("...... WHERE col=:type");
Scenarion 1と同じ操作を行う必要があるでは
シナリオ#1のためにバインディングと 'CONCAT'を使うこともできます...' WHERE field LIKE CONCAT(:type、 '%') ' – Phil