ホームページ > データベース > mysql チュートリアル > PHP で PDO で LIKE 演算子を正しく使用する方法は?

PHP で PDO で LIKE 演算子を正しく使用する方法は?

Linda Hamilton
リリース: 2024-12-08 03:40:13
オリジナル
340 人が閲覧しました

How to Correctly Use the LIKE Operator with PDO in PHP?

PDO を使用した LIKE クエリの実装

構造化照会言語 (SQL) で LIKE 演算子を使用する場合、パーセント記号 (%) が使用されます0 個以上の部分文字列と一致するワイルドカード文字として使用します。 PDO (PHP データ オブジェクト) を備えた PHP では、LIKE 演算子を利用してデータベース列に対してパターン マッチングを実行できます。

問題の定式化

ユーザーが問題に遭遇しました。 PDO で LIKE 演算子を利用しようとしているとき。変数値に目的の検索語が含まれていることを確認し、他の PDO クエリの機能を検証しているにもかかわらず、LIKE クエリは結果を返しません。

正しいクエリ構文

解決するには問題は、変数値をクエリ文字列に埋め込むのではなく、パーセント (%) ワイルドカードで照合する変数値を $params 配列内で囲むことが重要です。それ自体。正しい構文は次のとおりです。

$query = "SELECT * FROM tbl WHERE address LIKE ? OR address LIKE ?";
$params = array("%$var1%", "%$var2%");
$stmt = $handle->prepare($query);
$stmt->execute($params);
ログイン後にコピー

説明

元のクエリでは、% ワイルドカードがクエリ文字列に埋め込まれていました。ただし、PDO は値を引用符で囲んでクエリを準備するため、次のようなクエリが作成されます。

SELECT * FROM tbl WHERE address LIKE '%"foo"%' OR address LIKE '%"bar"%'
ログイン後にコピー

この誤った構文により、% ワイルドカードがワイルドカードとして正しく機能せず、一致が見つかりません。代わりに $params 配列にワイルドカードを含めることで、パーセント記号が引用符で囲まれず、意図したワイルドカード マッチング機能を実行できるようになります。

以上がPHP で PDO で LIKE 演算子を正しく使用する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート