ホームページ >データベース >mysql チュートリアル >PDO パラメーターを含む LIKE クエリを正しく使用するにはどうすればよいですか?
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 サイトの他の関連記事を参照してください。