首頁 > 後端開發 > php教程 > 如何在 SQL 中正確連接變數和準備好的語句?

如何在 SQL 中正確連接變數和準備好的語句?

Linda Hamilton
發布: 2024-12-16 02:50:11
原創
462 人瀏覽過

How to Properly Concatenate Variables with Prepared Statements in SQL?

將變數與預備語句連接

使用預備語句時,必須將變數與 SQL 查詢正確連接。不正確的語法可能會導致錯誤,例如以下程式碼片段中遇到的錯誤:

$sql = 'SELECT * FROM `users` WHERE username LIKE \'%{$var}%' '; // Error: Number of variables doesn't match number of parameters
$sql = 'SELECT * FROM `users` WHERE username LIKE %{?}% '; // Error: Wrong SQL
登入後複製

正確的方法

要避免這些錯誤,請使用以下步驟:

  1. 將您的參數與準備好的通配符連接起來語句:
$likeVar = "%" . $yourParam . "%";
登入後複製
  1. 使用 ?準備查詢作為佔位符:
$stmt = $mysqli->prepare("SELECT * FROM REGISTRY where name LIKE ?");
登入後複製
  1. 將參數綁定到準備好的語句:
$stmt->bind_param("s", $likeVar);
登入後複製

在此範例中, $ likeVar 包含要作為的值使用通配符(「%...%」)進行搜尋。將其綁定到 s(字串)參數類型可確保它在資料庫查詢中正確處理。

不區分大小寫

如果您需要不區分大小寫的搜索,可以將 COLLATE utf8mb4_bin 子句添加到您的查詢:

$stmt = $mysqli->prepare("SELECT * FROM REGISTRY where name LIKE ? COLLATE utf8mb4_bin");
登入後複製

以上是如何在 SQL 中正確連接變數和準備好的語句?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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