首頁 >資料庫 >mysql教程 >如何解決準備語句中的 PHP PDOException「參數編號無效」錯誤?

如何解決準備語句中的 PHP PDOException「參數編號無效」錯誤?

Susan Sarandon
Susan Sarandon原創
2024-12-11 07:42:14882瀏覽

How to Resolve the PHP PDOException

PHP PDOException:解決「無效參數編號」錯誤

當查詢嘗試將不正確數量的參數發生此錯誤PDO 準備好的聲明。在提供的程式碼中,錯誤可能是由於在查詢字串中使用命名佔位符造成的。

原始查詢:

$sql = "INSERT INTO persist (user_id, hash, expire) VALUES (:user_id, :hash, :expire) ON DUPLICATE KEY UPDATE hash=:hash";

使用相同的命名佔位符「:hash」初始插入和更新。但是,PDO 需要為每個綁定的值提供唯一的參數標記。

要解決此問題,請重新命名更新子句中的佔位符:

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

此外,將參數數組綁定到execute() 方法:

$stm->execute(array(":user_id" => $user_id, ":hash" => $hash, ":expire" => $future, ":hash2" => $hash));

這個修改保證了每個被綁定的值都有唯一的參數標記,解決了「參數無效」的問題數字」錯誤。

以上是如何解決準備語句中的 PHP PDOException「參數編號無效」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn