ホームページ >データベース >mysql チュートリアル >MySQL LIKE クエリで PHP PDO プリペアド ステートメントを正しく使用する方法
MySQL LIKE クエリを使用した PHP PDO プリペアド ステートメント
PHP で PDO を使用して LIKE 条件を使用してデータをクエリする場合、正しい条件を理解することが重要です検索語の扱い。報告された問題の解決策は次のとおりです:
ステートメントを準備するときに、最初のコードは検索語に誤って二重引用符を追加しました:
$ret = $prep->execute(array(':searchTerm' => '"%'.$searchTerm.'%"'));
この余分な引用符は不要です。準備されたステートメントはデータをクエリから分離するため、引用符を埋め込むべきではありません。
さらに、コードは、検索語の前後にパーセント記号を追加せずに、WHERE hs.hs_text LIKE ":searchTerm" を誤って使用しました。
問題を修正するには、修正されたコードでステートメントを次のように実行する必要があります。
$prep = $dbh->prepare($sql); $ret = $prep->execute(array(':searchTerm' => '%'.$searchTerm.'%'));
説明:
プリペアド ステートメントはクエリとは別にデータを転送するため、値はクエリ文字列に直接置換されません。引用符はクエリ内に値を埋め込む場合にのみ必要ですが、ここでは当てはまりません。
正しい構文を使用することで、PDO 準備済みステートメントは、指定された検索語で LIKE 条件を使用して効率的にデータを検索できます。
以上がMySQL LIKE クエリで PHP PDO プリペアド ステートメントを正しく使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。