ホームページ >データベース >mysql チュートリアル >MySQL PDO クエリで安全なユーザー名検索のために、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 は、 bindParam の実行中にすべての文字列データを自動的に引用符で囲みます。これにより、特殊文字が適切に処理され、SQL インジェクションの脆弱性が防止されます。
以上がMySQL PDO クエリで安全なユーザー名検索のために、bindParam で LIKE を利用する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。