MySQL PDO クエリで BindParam を使用した LIKE を適切に使用する
MySQL PDO クエリでbindParam を使用して LIKE 検索を実行しようとする場合は、次を使用することが重要です。正確な結果を保証するための正しい構文。
最適化済み構文
bindParam を使用して「a」で始まるユーザー名を照合するには、正しい構文は次のとおりです:
$term = "a%";
対照的に、元の質問で提供されている構文「$term = "'$term%'」は、$term 値の前後に不要な内側の一重引用符が配置されているため、間違っています。これにより、検索が行われます。 a%.
bindParam の役割
bindParam の代わりに 'a%' を使用すると、文字列データが SQL ステートメントに挿入されるときに自動的に引用符が付けられます。そのため、一重引用符を手動で追加します。は必要ありませんが、不正確な結果が生じる可能性があります。
改訂コード
最適化された構文を使用すると、修正されたコードは次のようになります。
$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();
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3