尝试运行以下功能时,出现错误“ 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
提交
取消