使用預備語句時,必須將變數與 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
要避免這些錯誤,請使用以下步驟:
$likeVar = "%" . $yourParam . "%";
$stmt = $mysqli->prepare("SELECT * FROM REGISTRY where name LIKE ?");
$stmt->bind_param("s", $likeVar);
在此範例中, $ likeVar 包含要作為的值使用通配符(「%...%」)進行搜尋。將其綁定到 s(字串)參數類型可確保它在資料庫查詢中正確處理。
如果您需要不區分大小寫的搜索,可以將 COLLATE utf8mb4_bin 子句添加到您的查詢:
$stmt = $mysqli->prepare("SELECT * FROM REGISTRY where name LIKE ? COLLATE utf8mb4_bin");
以上是如何在 SQL 中正確連接變數和準備好的語句?的詳細內容。更多資訊請關注PHP中文網其他相關文章!