为了账号安全,请及时绑定邮箱和手机立即绑定

PHP PDOException:“ SQLSTATE [HY093]:无效的参数编号”

PHP PDOException:“ SQLSTATE [HY093]:无效的参数编号”

千万里不及你 2019-11-02 14:02:59
尝试运行以下功能时,出现错误“ 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`)

这样,您只需要发送一次值。


查看完整回答
反对 回复 2019-11-02
  • 3 回答
  • 0 关注
  • 749 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信