首頁 > 後端開發 > php教程 > 如何解決 PDO 異常:「SQLSTATE[HY093]:無效的參數號碼」?

如何解決 PDO 異常:「SQLSTATE[HY093]:無效的參數號碼」?

Susan Sarandon
發布: 2024-12-01 03:43:17
原創
965 人瀏覽過

How to Solve the PDO Exception:

PDO 異常:「SQLSTATE[HY093]:無效的參數號碼」已解決

在嘗試執行PDO 準備好的語句時,您遇到了錯誤「SQLSTATE[HY093]:參數編號無效」。檢查提供的程式碼,很明顯您有多個同名的命名參數。

問題在於您在 SQL 語句和對應的執行呼叫中使用命名參數。具體來說,您使用了參數「:hash」兩次,這在 PDO 準備好的語句中是不允許的。

要解決此錯誤,請如下所示修改程式碼:

$sql = "INSERT INTO persist (user_id, hash, expire)
        VALUES (:user_id, :hash, :expire)
        ON DUPLICATE KEY UPDATE hash=:hash2";
登入後複製

中這個更新的語句,引入了一個額外的命名參數「:hash2」來取代第二次出現的「:hash」。

此外,execute() 呼叫應進行相應修改:

$stm->execute(
    array(":user_id" => $user_id, ":hash" => $hash, ":expire" => $future, ":hash2" => $hash)
);
登入後複製

透過提供不同的命名參數,可以避免因參數冗餘而導致的「SQLSTATE[HY093]」錯誤。這種方法可確保正確的參數綁定和準備好的語句的成功執行。

以上是如何解決 PDO 異常:「SQLSTATE[HY093]:無效的參數號碼」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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