PDO プリペアド ステートメントを使用したワイルドカードを使用した SQL クエリの実行
データベース アプリケーションでのパターン マッチング クエリの実行は、柔軟な検索とデータ取得にとって重要です。この記事では、MySQL クエリを実行するときに、PHP で PDO プリペアド ステートメントと組み合わせてワイルドカードを効果的に使用する方法について説明します。
課題: プリペアド ステートメントでのワイルドカードの使用
プリペアド ステートメントを使用する場合はセキュリティを向上させ、SQL インジェクションの脆弱性を防止しますが、パターン マッチングにワイルドカード (% と _) を組み込むソリューションを見つけるのは困難な場合があります。この記事では、PDO プリペアド ステートメントでワイルドカードを適切に実装する方法について説明します。
解決策:bindValue と bindingParam
プリペアド ステートメントでワイルドカードを適切に利用するための鍵は、適切な結合方法。次の 2 つのバインディング オプションが利用可能です:
使用例:bindValue()
次のコード スニペットは、bindValue() を使用したクエリの正常な実行を示しています。
<code class="php">$stmt = $dbh->prepare("SELECT * FROM `gc_users` WHERE `name` LIKE :name"); $stmt->bindValue(':name', '%' . $name . '%'); $stmt->execute();</code>
使用例:bindParam()
または、bindParam() メソッド
<code class="php">$name = "%$name%"; $query = $dbh->prepare("SELECT * FROM `gc_users` WHERE `name` like :name"); $query->bindParam(':name', $name); $query->execute();</code>
これらの手法を採用することで、セキュリティを維持し SQL インジェクションの脆弱性を防止しながら、プリペアド ステートメントを使用したパターン マッチング クエリを効率的に実行できます。
以上が効率的な SQL クエリのためにワイルドカードを含む PDO プリペアド ステートメントを使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。