ホームページ >データベース >mysql チュートリアル >PDO パラメーターを含む LIKE クエリを正しく使用するにはどうすればよいですか?

PDO パラメーターを含む LIKE クエリを正しく使用するにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-03 01:12:10125ブラウズ

How to Correctly Use LIKE Queries with PDO Parameters?

PDO での LIKE クエリの使用

PDO で LIKE クエリを実装しようとすると、以下のクエリで説明されているような問題が発生する可能性があります。 :

$query = "SELECT * FROM tbl WHERE address LIKE '%?%' OR address LIKE '%?%'";
$params = array($var1, $var2);
$stmt = $handle->prepare($query);
$stmt->execute($params);

このクエリは、$var1 と$var2 には有効な検索語が含まれています。エラーは、% 記号が正しく含まれていないことにあります。

PDO で LIKE を正しく使用するには、クエリ自体ではなく $params 配列に % 記号を含める必要があります。修正されたコードは次のとおりです。

$query = "SELECT * FROM tbl WHERE address LIKE ? OR address LIKE ?";
$params = array("%$var1%", "%$var2%");
$stmt = $handle->prepare($query);
$stmt->execute($params);

$params 配列内で変数を % 記号で囲むことにより、% 文字がクエリに正しく置換されるようになります。この変更を行わないと、PDO プリペアド ステートメントは % 記号をリテラル文字列値の一部として扱うことになり、不正なクエリが生成されます。

以上がPDO パラメーターを含む LIKE クエリを正しく使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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