首页 > 后端开发 > php教程 > 如何修复多次插入中的'SQLSTATE[HY093]:无效参数号”错误?

如何修复多次插入中的'SQLSTATE[HY093]:无效参数号”错误?

Susan Sarandon
发布: 2024-12-05 06:17:12
原创
335 人浏览过

How to Fix

数据库错误故障排除:参数编号无效

当前的问题涉及尝试多次插入操作时的 SQL 查询准备错误。具体来说,遇到了错误消息“SQLSTATE[HY093]: Invalid parameter number:parameter was not Defined”。

经调查,很明显 $values 和 $matches 数组中的元素数量不符合匹配。这种差异是由于 $values 可能包含进入循环之前的现有值这一事实引起的。要解决此问题,必须将 $values 初始化为空数组。

此外,建议确保“哈希”列应用了唯一索引。这将防止将重复值插入到数据库中。

以下是解决这些问题的修订后的代码片段:

$matches = array('1');
$count = count($matches);
$values = [];
for($i = 0; $i < $count; ++$i) {
    $values[] = '(?)';
}

// INSERT INTO DATABASE
$sql = "INSERT INTO hashes (hash) VALUES " . implode(', ', $values) . " ON DUPLICATE KEY UPDATE hash=values(hash)";
$stmt = $dbh->prepare($sql);
$data = $stmt->execute($matches);
登录后复制

以上是如何修复多次插入中的'SQLSTATE[HY093]:无效参数号”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

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