ホームページ >データベース >mysql チュートリアル >MySQL PDO クエリで安全なユーザー名検索のために、bindParam で LIKE を利用する方法は?

MySQL PDO クエリで安全なユーザー名検索のために、bindParam で LIKE を利用する方法は?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-09 15:51:02789ブラウズ

How to Utilize LIKE with bindParam for Secure Username Search in MySQL PDO Queries?

MySQL PDO クエリにbindParam を使用した LIKE の利用

ユーザー名検索に BindParam と LIKE を使用する

MySQL クエリと PDO ライブラリを使用する場合、これは非常に重要ですLIKE 演算子を効果的に活用します。文字「a」で始まるユーザー名を検索する必要があるシナリオを考えてみましょう。

正しい実装

「a」で始まるユーザー名を正しく照合するには、次のコードで十分です。

$term = "a";
$term .= "%"; // Adding the wildcard character

$sql = "SELECT username FROM `user` WHERE username LIKE :term LIMIT 10";

$dbh = Connect::getInstance();
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':term', $term, PDO::PARAM_STR);
$stmt->execute();
$data = $stmt->fetchAll();

エラー分析

提供されたコードは $term を誤って一重引用符で囲んでいるため、不正なクエリが発生します。内側の一重引用符を削除し、ワイルドカード文字「%」を正しく追加すると、LIKE 演算子は「a」で始まるユーザー名と一致します。

PDO セキュリティと引用符

PDO は、 bindParam の実行中にすべての文字列データを自動的に引用符で囲みます。これにより、特殊文字が適切に処理され、SQL インジェクションの脆弱性が防止されます。

以上がMySQL PDO クエリで安全なユーザー名検索のために、bindParam で LIKE を利用する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。