PDO 例外:參數編號無效
嘗試執行add_persist 函數時,出現「SQLSTATE[HY093]:無效參數編號」錯誤遇到。此函數將資料插入持久表中,如果發現重複鍵,則更新雜湊值。
檢查程式碼後,很明顯問題出在 SQL 語句上。此語句嘗試綁定 :hash 參數兩次:一次用於 INSERT 操作,另一次用於 ON DUPLICATE KEY UPDATE 運算。
要解決此錯誤,必須修改 SQL 語句以包含唯一的參數標記執行語句時傳遞給語句的每個值。修改後的語句和執行程式碼如下:
$sql = "INSERT INTO persist (user_id, hash, expire) VALUES (:user_id, :hash, :expire) ON DUPLICATE KEY UPDATE hash=:hash2"; $stm->execute(array(":user_id" => $user_id, ":hash" => $hash, ":expire" => $future, ":hash2" => $hash));
根據PHP文檔,在準備好的語句中使用相同的命名參數標記兩次是無效的。每個值必須有自己唯一的參數標記以避免此錯誤。
以上是為什麼我的 PDO 準備語句會拋出「無效參數號」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!