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中文網其他相關文章!