MySQL PDO クエリで BindParam を使用した LIKE を適切に使用する
MySQL PDO クエリでbindParam を使用して LIKE 検索を実行しようとする場合、正確さを保証するための正しい構文
最適化された構文
bindParam を使用して「a」で始まるユーザー名を照合するには、正しい構文は次のとおりです。
$term = "a%";
対照的に、元の質問で提供された構文「$term = "'$term%'」は、不要な内部変数が配置されているため、正しくありません。 $term 値を一重引用符で囲みます。これにより、a% ではなく 'a%' が検索されます。
bindParam の役割
bindParam は、文字列を自動的に引用符で囲みます。したがって、一重引用符を手動で追加する必要はなく、誤った結果が生じる可能性があります。
改訂されたコード
最適化された構文を使用すると、改訂されたコードは次のようになります:
$term = "a%"; $sql = "SELECT username FROM `user` WHERE username LIKE :term LIMIT 10"; $core = Connect::getInstance(); $stmt = $core->dbh->prepare($sql); $stmt->bindParam(':term', $term, PDO::PARAM_STR); $stmt->execute(); $data = $stmt->fetchAll();
以上がMySQL PDO クエリで BindParam で LIKE を正しく使用する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。