首頁 >後端開發 >php教程 >如何正確使用 PDO 準備語句進行 MySQL LIKE 查詢?

如何正確使用 PDO 準備語句進行 MySQL LIKE 查詢?

Susan Sarandon
Susan Sarandon原創
2024-10-31 02:05:29388瀏覽

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>

準備好的語句應該執行如下:

現在,查詢應該回傳所需的結果.

以上是如何正確使用 PDO 準備語句進行 MySQL LIKE 查詢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn