2016-05-21 3 views
0

У меня есть запрос, который сохраняет ноль в одном из столбцов MySQL.Невозможно вставить нуль в MySQL INT NULL

Колонка была установлена ​​как NULL = нет и Default = нет. Но мой запрос не работал, когда у меня был этот структурирующий агент, когда я сохраняю 0. Поэтому я меняю значение на null. Но при сохранении 0 (ноль) в базе данных все еще сохраняется NULL.

Когда у меня был установлен столбец NULL = нет и Default, он отлично работал на моем локальном хосте, но в моем хостинговом запросе не вставили. поэтому я меняю его на null.

MySQL версии 5.6.30

Запрос

$mysqli->query("INSERT INTO categories(cname, cat_description, cat_ parent) VALUES ('$cname', '$description', '0')"); 
+0

И где запрос, который вы пробовали? –

+0

Я ценю, что английский не может быть вашим первым языком, но очень сложно понять, что вы говорите. Скопируйте и вставьте свой запрос и результаты и покажите, какие результаты вы ожидали вместо этого, действительно помогли бы прояснить, что происходит. – eggyal

+0

"* Когда у меня установлен столбец NULL = нет и по умолчанию *": и по умолчанию ... по умолчанию какой? – Arcesilas

ответ

4

Вы на самом деле пытается вставить string в integer колонке. MySQL этого не принимает. И это не должно.

Вставить целое:

$mysqli->query("INSERT INTO categories(cname, cat_description, cat_ parent) VALUES ('$cname', '$description', 0)"); 

Просто удалите кавычки 0.

+0

С конфигурацией по умолчанию MySQL будет передавать строку в int ([sqlfiddle] (http://sqlfiddle.com/#!9/aaf44/1)). –

+0

Но нет способа узнать, использует ли его хостинг-провайдер конфигурацию по умолчанию (они не должны, на самом деле). – Arcesilas

+0

спасибо, что это хорошо. так что обычно, если вы не используете патент в других хостинг-провайдерах, он автоматически сохраняет 0. как это происходит в hostgator, потому что строгий mysql включен? – Jordyn

Смежные вопросы