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"