PDO PHP - PDOException - Числовое значение вне диапазона: 1264 Значение вне диапазона для столбца 'customer_id' в строке 1

Я пытаюсь вставить много строк (400-2500) в таблицу с помощью одного запроса "множественная вставка" (PHP PDO Driver).

Теперь я получаю эту ошибку:

Неустранимая ошибка: необработанное исключение "PDOException" с сообщением "SQLSTATE[22003]: числовое значение вне диапазона: 1264 Вне значения диапазона для столбца" customer_id "в строке 1"

Но, насколько я вижу, нигде не пытается вставить значение 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 если я не ошибаюсь.

2 ответа

Решение

1264 это не значение. Это код ошибки. Возможно, вы пытаетесь вставить значение customer_id больше, чем 2147483647.

Вы можете попробовать изменить таблицу вручную и изменить ее с "int" на "bigint" для "customer_id"

Другие вопросы по тегам