Ошибка MySQL при отправке '' в массиве - PullRequest
2 голосов
/ 02 января 2012

У меня есть цикл PHP, который автоматически генерирует массив для вставки в таблицу.Но я получаю эту ошибку:

Database query failed: Incorrect integer value: '' for column 'id' at row 1
Last SQL query: INSERT INTO users(id, email, password, first_name, last_name) VALUES ('', 'test@user.com', 'fljhdsfsd', 'John', 'Doe')

Я попытался установить в поле идентификатора значение Нет пустых и пустых, но это не помогло.

Есть идеи?Заранее спасибо за помощь.

Ответы [ 4 ]

3 голосов
/ 02 января 2012

Если ваше поле id является автоинкрементным столбцом, его можно просто опустить в запросе INSERT.

INSERT INTO users(email, password, first_name, last_name) 
VALUES ('test@user.com', 'fljhdsfsd', 'John', 'Doe');

id будет сгенерировано автоматически.

2 голосов
/ 02 января 2012

Ваш Mysql работает в строгом режиме. Вы должны передать NULL, если у вас нет значения для этого столбца, если столбец auto increment, вы можете не допустить этот столбец в запрос. После того, как попробуете приведенный ниже запрос, я думаю, это сработает.

INSERT INTO users(id, email, password, first_name, last_name) 
VALUES (NULL, 'test@user.com', 'fljhdsfsd', 'John', 'Doe')
1 голос
/ 02 января 2012

Если поле id автоматически увеличивается, вы можете пропустить это поле. Если нет, то читайте ошибку, он говорит: «Неверное целочисленное значение», и вы указываете, что это строка. В этом случае перед каждой вставкой вы должны извлечь максимальный идентификатор из базы данных и увеличить его или использовать любое другое поколение идентификатора.

0 голосов
/ 02 января 2012

Это произошло потому, что ваше поле id в базе данных теперь содержит только целочисленное значение. а blanck не является целочисленным значением. Просто измените тип данных в вашей базе данных.

Просто измените свой идентификатор типа данных "integer" на "varchar", отметьте "автоинкремент" и поместите в базу данных значение длины, например "250", а затем выполните запрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...