You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP插入SQL触发SQLSTATE[HY093]错误,寻求技术帮助

解决PDO插入数据时的SQLSTATE[HY093]错误

嘿,这个问题其实一眼就能找到症结——你的命名参数完全不匹配啦!

错误根源

先看你的SQL插入语句:

$sql = "INSERT INTO Pokedex(name, nickname, datefound) VALUES (:name, :nickname, :time);";

这里你给datefound字段绑定的参数是:time,但在后续的参数绑定数组里:

$params = array(":name" => $lcname, ":nickname" => $nickname, ":datefound" => $time);

你写的键是:datefound,和SQL里的:time完全对不上!PDO找不到对应的参数映射,自然就抛出了Invalid parameter number的错误。

修正后的代码

只需要把参数名统一即可,推荐和字段名保持一致(可读性更强),修改后的代码如下:

$sql = "INSERT INTO Pokedex(name, nickname, datefound) VALUES (:name, :nickname, :datefound);";
$stmt = $db->prepare($sql);
$params = array(":name" => $lcname, ":nickname" => $nickname, ":datefound" => $time);
$stmt->execute($params);

额外小提醒

另外要确保$time变量的格式符合MySQL DATETIME类型的要求,也就是YYYY-MM-DD HH:MM:SS格式,比如可以用date('Y-m-d H:i:s')生成合法的时间值,避免后续出现类型不匹配的问题。

内容的提问来源于stack exchange,提问作者Kaitlyn He

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:35:23