【发布时间】:2016-09-24 06:54:35
【问题描述】:
我正在尝试使用单个“多次插入”查询(PHP 的 PDO 驱动程序)将大量行 (400-2500) 推送到表中。
现在我收到此错误:
致命错误:带有消息的未捕获异常“PDOException” 'SQLSTATE [22003]:数值超出范围:1264 超出范围值 对于第 1 行的列“customer_id”
但据我所知,它没有尝试在任何地方插入值1264,尤其是在customer_id 列中。
此外,我准备好的查询中 ?s 的数量与我传递给 execute() 调用的数组中的项目数量相匹配。
if ((!in_array(true, $this->issuesCallsErrors)) && (substr_count($this->sql, '?') === count($this->issues))) {
var_dump(substr_count($this->sql, '?')); //int: 3600
var_dump(count($this->issues)); //int: 3600
echo $this->sql;
print_r($this->issues);
$query = DBCon::getCon()->query('TRUNCATE TABLE `issue`');
$query = DBCon::getCon()->prepare($this->sql);
$query->execute($this->issues);
...
}
编辑:一些外部信息
尝试插入customer_id 的最大值是193。 customer_id 是 smallint(5), unsigned 如果我没记错的话,它允许最大值为 65535。
【问题讨论】:
标签: php mysql pdo insert multiple-insert