Установите значение NULL в MySQL - PullRequest
112 голосов
/ 16 февраля 2012

Я хочу установить значение NULL, если в текстовое поле в форме, которую я отправляю, ничего не помещается. Как я могу это сделать? Я попытался вставить 'NULL', но это просто добавляет слово NULL в поле.

Я не уверен, какой код я должен предоставить для этого, я просто пишу запрос ОБНОВЛЕНИЕ.

Ответы [ 9 ]

228 голосов
/ 16 февраля 2012

Не помещайте NULL в кавычки в вашем заявлении на обновление. Это должно работать:

UPDATE table SET field = NULL WHERE something = something
16 голосов
/ 16 февраля 2012

Вы, вероятно, цитируете 'NULL'.NULL является зарезервированным словом в MySQL и может быть вставлено / обновлено без кавычек:

INSERT INTO user (name, something_optional) VALUES ("Joe", NULL);
UPDATE user SET something_optional = NULL;
10 голосов
/ 16 февраля 2012
UPDATE MyTable
SET MyField = NULL
WHERE MyField = ''
6 голосов
/ 16 февраля 2012
if (($_POST['nullfield'] == 'NULL') || ($_POST['nullfield'] == '')) {
   $val = 'NULL';
} else {
   $val = "'" . mysql_real_escape_string($_POST['nullfield']) . "'";
}

$sql = "INSERT INTO .... VALUES ($val)";

если вы введете 'NULL' в свой запрос, то вы просто вставите 4-символьную строку. Без кавычек NULL является фактическим нулевым значением.

5 голосов
/ 16 февраля 2012

Вы должны вставить null, а не строку 'NULL'.

4 голосов
/ 16 февраля 2012

Используйте NULL (без кавычек).

UPDATE users SET password = NULL where ID = 4
3 голосов
/ 16 февраля 2012

Предполагая, что столбец допускает нулевое значение,

$mycolupdate = null; // no quotes

должен сделать трюк

2 голосов
/ 03 февраля 2017

Скорее всего, у вас возникла проблема, потому что mysql различает нуль, написанный заглавными буквами, и нуль, написанный маленьким регистром.

Так что, если вы использовали оператор обновления с нулем, он не будет работать. Если вы установите его в NULL, он будет работать нормально.

Спасибо.

2 голосов
/ 02 мая 2015

Ответы, приведенные здесь, хороши, но я все еще пытался опубликовать NULL, а не ноль в таблице mysql.

Наконец, я заметил, что проблема была в запросе вставки, который я использовал

   $quantity= "NULL";
   $itemname = "TEST";

Пока все хорошо.

Мой запрос на вставку был неверным.

   mysql_query("INSERT INTO products(quantity,itemname) 
   VALUES ('$quantity','$itemname')");

Я исправил запрос на чтение.

   mysql_query("INSERT INTO products(quantity,itemname) 
   VALUES ('".$quantity."','$itemname')");

Таким образом, количество $ находится за пределами основной строки. Моя таблица sql теперь принята для записи нулевого количества вместо 0

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