Ответ 1
Не помещайте NULL
внутри кавычек в свой оператор обновления. Это должно работать:
UPDATE table SET field = NULL WHERE something = something
Я хочу, чтобы значение было установлено на NULL
, если ничто не помещено в текстовое поле в форме, которую я отправляю. Как я могу это сделать?
Я пробовал вставлять 'NULL'
, но это просто добавляет слово NULL
в поле.
Я не уверен, какой код я должен предоставить для этого, я просто пишу запрос UPDATE.
Не помещайте NULL
внутри кавычек в свой оператор обновления. Это должно работать:
UPDATE table SET field = NULL WHERE something = something
Вероятно, вы цитируете "NULL". NULL является зарезервированным словом в MySQL и может быть вставлено/обновлено без кавычек:
INSERT INTO user (name, something_optional) VALUES ("Joe", NULL);
UPDATE user SET something_optional = NULL;
UPDATE MyTable
SET MyField = NULL
WHERE MyField = ''
if (($_POST['nullfield'] == 'NULL') || ($_POST['nullfield'] == '')) {
$val = 'NULL';
} else {
$val = "'" . mysql_real_escape_string($_POST['nullfield']) . "'";
}
$sql = "INSERT INTO .... VALUES ($val)";
если вы поместите 'NULL'
в свой запрос, тогда вы просто вставляете 4-символьную строку. Без кавычек NULL
- фактическое значение null.
Вы должны вставить null
, а не строку 'NULL'
.
Используйте NULL
(без кавычек вокруг него).
UPDATE users SET password = NULL where ID = 4
Предполагая, что столбец допускает нулевую настройку,
$mycolupdate = null; // no quotes
должен сделать трюк
Проблема, с которой вы столкнулись, скорее всего связана с тем, что mysql различает нуль, написанный заглавными буквами, и null, написанный в маленьком регистре.
Итак, если вы использовали инструкцию update с нулевым значением, это не сработало. Если вы установите значение NULL, это будет нормально работать.
Спасибо.
Ответы, приведенные здесь, хороши, но я все еще пытался опубликовать 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