ホームページ >データベース >mysql チュートリアル >準備されたステートメントで LIKE '%{$var}%' を安全に使用する方法は?

準備されたステートメントで LIKE '%{$var}%' を安全に使用する方法は?

Barbara Streisand
Barbara Streisandオリジナル
2025-01-16 11:04:02725ブラウズ

How to Safely Use LIKE '%{$var}%' with Prepared Statements?

準備されたステートメントで LIKE '%{$var}%' を正しく使用する

特定の部分文字列を含むユーザー名の大文字と小文字を区別しない検索を実行しようとすると (たとえば入力時に)、LIKE '%{$var}%' 構文を使用すると問題が発生することがあります。この問題は、準備されたステートメントでこの構文を使用しようとすると発生します。

この問題を解決するには、別のアプローチが提案されています。まず、パターン "%{$yourParam}%" を含む 'likeVar' 変数を定義します。次に、「?」プレースホルダーを使用してクエリを準備し、bind_param を使用して「likeVar」変数をバインドします。

例は次のとおりです:

<code class="language-php">$likeVar = "%" . $yourParam . "%";
$stmt = $mysqli->prepare("SELECT * FROM REGISTRY WHERE name LIKE ?");
$stmt->bind_param("s", $likeVar);
$stmt->execute();</code>

このメソッドでは、まず「%」文字と $yourParam を連結して「likeVar」を作成します。次に、前処理されたクエリで「?」プレースホルダーを使用し、文字列の「s」指定子を使用して「likeVar」変数をそれにバインドします。この方法により、検索と結果の表示が確実に成功します。

以上が準備されたステートメントで LIKE '%{$var}%' を安全に使用する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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