首页 > 数据库 > mysql教程 > 如何解决准备语句中的 PHP PDOException'参数编号无效”错误?

如何解决准备语句中的 PHP PDOException'参数编号无效”错误?

Susan Sarandon
发布: 2024-12-11 07:42:14
原创
908 人浏览过

How to Resolve the PHP PDOException

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板