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>
説明:
<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 サイトの他の関連記事を参照してください。