ホームページ >データベース >mysql チュートリアル >準備されたステートメントで LIKE '%{$var}%' を安全に使用する方法は?
準備されたステートメントで 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 サイトの他の関連記事を参照してください。