嘗試運行以下功能時,出現錯誤“ SQLSTATE [HY093]:無效的參數號”:function add_persist($db, $user_id) { $hash = md5("per11".$user_id."sist11".time()); $future = time()+(60*60*24*14); $sql = "INSERT INTO persist (user_id, hash, expire) VALUES (:user_id, :hash, :expire) ON DUPLICATE KEY UPDATE hash=:hash"; $stm = $db->prepare($sql); $stm->execute(array(":user_id" => $user_id, ":hash" => $hash, ":expire" => $future)); return $hash;}我覺得這很簡單,我只是沒有抓住。有任何想法嗎?
3 回答

江戶川亂折騰
TA貢獻1851條經驗 獲得超5個贊
我知道這是一個老問題,但是我認為值得注意的是,更適當的解決方案是通過適當利用SQL來避免PHP中的笨拙變通辦法:
INSERT INTO `persist` (`user_id`, `hash`, `expire`)
VALUES (:user_id, :hash, :expire)
ON DUPLICATE KEY UPDATE `hash`=VALUES(`hash`)
這樣,您只需要發送一次值。
添加回答
舉報
0/150
提交
取消