PDO PHP - PDOException - 数值超出范围:1264列' customer_id'超出范围值在第1行

时间:2016-05-26 10:19:18

标签: php mysql pdo insert multiple-insert

我正在尝试使用单个“多个插入”将很多行(400-2500)推入表格中。查询(PHP' PDO驱动程序)。

现在我收到了这个错误:

  

致命错误:未捕获的异常' PDOException'与消息   ' SQLSTATE [22003]:数值超出范围:1264超出范围值   对于列' customer_id'在第1行'

但据我所见,它无处可尝试插入值1264,尤其是customer_id列。 此外,我准备的查询中?的数量与我传递给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_idsmallint(5), unsigned会导致其允许最大值为65535

2 个答案:

答案 0 :(得分:3)

1264不是值。这是错误代码。 也许您尝试插入customer_id值超过2147483647。

答案 1 :(得分:1)

您可以尝试手动更改表格,并为“customer_id”从“int”更改为“bigint”