Я пытаюсь вставить много строк (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
если я не ошибаюсь.
1264 это не значение. Это код ошибки.
Возможно, вы пытаетесь вставить значение customer_id больше, чем 2147483647.
Вы можете попытаться изменить таблицу вручную и изменить с «int» на «bigint» для «customer_id»