3

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

现在我得到这个错误:

致命错误:未捕获的异常“PDOException”,带有消息“SQLSTATE [22003]:数值超出范围:1264 第 1 行的列 'customer_id' 的值超出范围”

但据我所知,它没有尝试插入 value 1264,尤其是在 column 中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_id193。如果我没记错的话,它customer_idsmallint(5), unsigned导致它允许最大值。65535

4

2 回答 2

4

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

于 2016-05-26T10:35:03.877 回答
2

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

于 2016-05-26T10:59:26.007 回答