MySQL LIKE クエリに PDO プリペアド ステートメントを正しく使用する方法

Susan Sarandon
リリース: 2024-10-31 02:05:29
オリジナル
337 人が閲覧しました

How to Correctly Use PDO Prepared Statements for MySQL LIKE Queries?

PHP PDO 準備済みステートメント: MySQL LIKE クエリ

PHP の PDO クラスを使用して LIKE クエリを実行する場合、LIKE 演算子を正しく処理することが重要です

問題: 提供されたコードでは、元のクエリは MySQL クライアントを使用して機能しましたが、PHP に移行すると問題が発生しました。

解決策: エラーは prepare メソッド内の WHERE 句にあります。次の行は正しくありません:

<code class="php">$ret = $prep->execute(array(':searchTerm' => '"%' . $searchTerm . '"%'));
$ret = $prep->execute(array(':searchTerm' => "%:searchTerm%"));
$ret = $prep->execute(array(':searchTerm' => ':' . $searchTerm . '%'));</code>
ログイン後にコピー

説明:

  • 準備されたステートメント: これらはクエリとは別にデータを転送します。値を埋め込む場合、引用符は不要です。
  • LIKE 演算子: 任意の文字シーケンスを表すには、% や _ などのワイルドカード文字が必要です。
  • 正しいクエリ: 正しい WHERE 句は次のようになります:
<code class="php">WHERE hs.hs_text LIKE :searchTerm</code>
ログイン後にコピー

また、準備されたステートメントは次のように実行されます:

<code class="php">$ret = $prep->execute(array(':searchTerm' => '%' . $searchTerm . '%'));</code>
ログイン後にコピー

これで、クエリは目的の結果を返すはずです。 .

以上がMySQL LIKE クエリに PDO プリペアド ステートメントを正しく使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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