我正在尝试使用单个"多次插入"查询(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
。
1264 不是值。这是错误代码。也许您尝试插入customer_id值多于2147483647。
您可以尝试手动更改表格,并将"customer_id"从"int"更改为"bigint"