首頁 > 資料庫 > mysql教程 > 如何在 PHP 中正確使用 PDO 準備語句和 MySQL LIKE 查詢?

如何在 PHP 中正確使用 PDO 準備語句和 MySQL LIKE 查詢?

Mary-Kate Olsen
發布: 2024-11-29 16:38:11
原創
1017 人瀏覽過

How to Correctly Use PDO Prepared Statements with MySQL LIKE Queries in PHP?

PHP PDO 準備語句-- MySQL LIKE 查詢

在PHP 中使用PDO 準備語句時,使用MySQL 驅動程式查詢可能實現具有挑戰性。本文將探討所需的語法並提供解決方案來幫助開發人員解決他們可能遇到的任何問題。

問題表述

開發人員正在嘗試執行搜尋使用 PDO 的 MySQL 驅動程式進行查詢。該查詢在直接透過 MySQL 用戶端執行時運作正常,但在使用 PHP 執行時無法傳回任何結果。

MySQL LIKE 查詢的 PDO 準備語句語法

與字串替換不同,PHP PDO 中的準備語句將資料與查詢分開傳輸。因此,將值綁定到 LIKE 語句時應避免使用雙引號或單引號。在 PHP PDO 中將值綁定到 LIKE語句的正確語法如下:

$searchTerm = '%value%';
$prep = $dbh->prepare($sql);
$ret = $prep->execute(array(':searchTerm' => $searchTerm));
登入後複製
登入後複製
登入後複製

不正確的嘗試

開發人員嘗試的以下語法不正確且不會產生所需的結果:

$searchTerm = '%value%';
$prep = $dbh->prepare($sql);
$ret = $prep->execute(array(':searchTerm' => '"%' . $searchTerm . '%"', '1');
登入後複製
$searchTerm = '%value%';
$prep = $dbh->prepare($sql);
$ret = $prep->execute(array(':searchTerm' => $searchTerm));
登入後複製
登入後複製
登入後複製

解決方案

要解決此問題,請使用以下程式碼:

$searchTerm = '%value%';
$prep = $dbh->prepare($sql);
$ret = $prep->execute(array(':searchTerm' => $searchTerm));
登入後複製
登入後複製
登入後複製

說明

說明PDO中的預備語句並不簡單地執行字串替換。相反,它們與查詢分開處理資料。只有當將值嵌入到查詢本身時才需要引號。透過省略準備好的語句綁定中的引號,PDO 能夠正確地將 '%value%' 字串傳輸到資料庫以用於 LIKE 比較。

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板