ホームページ > バックエンド開発 > PHPチュートリアル > MySQL でプリペアド ステートメントでワイルドカードを使用するにはどうすればよいですか?

MySQL でプリペアド ステートメントでワイルドカードを使用するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-10-28 09:46:02
オリジナル
978 人が閲覧しました

 How to Use Wildcards with Prepared Statements in MySQL?

プリペアド ステートメントとワイルドカードを使用した MySQL クエリの実行

プリペアド ステートメントを使用して SQL クエリを実行する場合、柔軟性を高めるためにワイルドカードを効果的に利用することが重要です。クエリの効率も向上します。プリペアド ステートメントは SQL インジェクションを防止することでセキュリティ上の利点を提供しますが、ワイルドカードを組み込む場合には特定の調整が必要になる場合があります。

特定のシナリオでは、プリペアド ステートメントを使用したクエリの実行:

SELECT * FROM `gc_users` WHERE `name` LIKE '%anyname%'
ログイン後にコピー

は最初に失敗しました。コードがパラメータをワイルドカードに直接バインドしようとしたためです。ただし、bindParam の代わりに bindingValue を使用することで、ワイルドカードで囲まれた $name 変数をバインドするという目的の機能を正常に実現できました。

$stmt = $dbh->prepare("SELECT * FROM `gc_users` WHERE `name` LIKE :name");
$stmt->bindValue(':name', '%' . $name . '%');
$stmt->execute();
ログイン後にコピー

または、bindParam を活用して、ワイルドカードを先頭に追加することもできます。以下に示す $name 変数:

$name = "%$name%";
$query = $dbh->prepare("SELECT * FROM `gc_users` WHERE `name` like :name");
$query->bindParam(':name', $name);
$query->execute();
ログイン後にコピー

以上がMySQL でプリペアド ステートメントでワイルドカードを使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート