MySQL 5 и сервер sql-mode

Прежде всего, извините за мой язык.

На самом деле я пытался переместить приложение PHP, использующее MySQL 4, на другой сервер, использующий MySQL 5.6.11.

Как и у многих людей, у меня была проблема: "Incorrect integer value: '' for column 'id' at row 1"
Я понял, в чем проблема, но выбор, который меня не удовлетворил.

Варианты:

  1. вернуться к MySQL 4 — невозможно
  2. изменен my.ini и sql-режим. Но Mysql влияет на множество оснований, и я
    не думаю, что это хорошая идея, чтобы уменьшить безопасность.
  3. поставить безопасность в коде php, но это займет много времени.

Как вы думаете, есть другое решение, которое я не нашел?

0

Решение

Это происходит, когда INSERT происходит с пустой строкой для идентификатора, как это:

INSERT INTO TABLE SET id = ''

Чтобы это исправить, предполагая, что id является первичным ключом, ищите в файлах вашего проекта INSERT INTO найти все запросы вставки и полностью удалить идентификатор из списка столбцов.
Затем в MySQL сделайте столбец id auto increment,

Теперь, когда запись вставляется, id автоматически получает уникальное целочисленное значение.

ОБНОВИТЬ:

Если идентификатор не Первичный ключ, снова выполните поиск в файлах вашего проекта для INSERT INTO и сделать значение идентификатора NULL:

INSERT INTO TABLE SET id = NULL
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]