PHP PDOException:參數編號無效
問題:
問題:使用下列指令時ON DUPLICATE KEY UPDATE 子句,在execute()方法可能會導致「SQLSTATE[HY093]:無效參數編號」錯誤。
解決方案:$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) );
要解決此問題,請為以下物件指派不同的參數標記execute() 方法中的每個值。以下是更新後的程式碼:
說明:PDO 文件指出「您不能在準備好的語句中兩次使用同名的命名參數標記」 」。這是因為傳遞給查詢的每個值都必須具有唯一的參數標記。透過為更新後的雜湊值(:hash2)分配不同的參數標記,問題得到解決。以上是為什麼在 PDO INSERT...ON DUPLICATE KEY UPDATE 查詢中兩次使用相同的命名參數會導致「參數號無效」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!