[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Добавление NULL в таблицу
boomber
Подскажите пожалуйста, как мне добавить в таблицу БД значение NULL, если в поле формы ничего нет?
Простым UPDATE не получается. Если поле имеет тип DATE, то заносится 0000-00-00, а не NULL.



Спустя 7 минут, 31 секунда (21.10.2011 - 15:00) Renden написал(а):
boomber
UPDATE tbl SET myDate=null

Я бы на твоем месте просто ничего бы не заносил, например так:

$sql = !empty($_POST['date']) ? " myDate= '".mysql_real_escape_string($_POST['date']) "'" : '';
mysql_query("UPDATE bla-bla SET a='b' $sql");

Спустя 9 минут, 57 секунд (21.10.2011 - 15:10) boomber написал(а):
А можно чуть пояснить?
$sql = !empty($_POST['date']) ? " myDate= '".mysql_real_escape_string($_POST['date']) "'" : '';
Это проверка поля на пустоту?

Спустя 1 минута, 30 секунд (21.10.2011 - 15:12) m4a1fox написал(а):
boomber
Цитата
Это проверка поля на пустоту?

По сути - да!

Спустя 1 минута, 16 секунд (21.10.2011 - 15:13) Renden написал(а):
boomber
ну да, если приходящий пост не пустой то добавляем в запрос строку myDate=$_POST['date'], иначе ниче не добавляем..
Зы точку забыл после ($_POST['date']).

Спустя 6 минут, 43 секунды (21.10.2011 - 15:20) boomber написал(а):
Цитата (Renden @ 21.10.2011 - 12:13)
boomber
ну да, если приходящий пост не пустой то добавляем в запрос строку myDate=$_POST['date'], иначе ниче не добавляем..
Зы точку забыл после ($_POST['date']).

Я такой конструкцией не пользовался, у меня задачи попроще.
То есть, если у меня еще есть поля, которые не пустые, то я в случае "пустоты" выполняю один запрос (обновляю только непустые поля), в обратном случае другой запрос (обновляю все поля), я правильно понял?

Точку, да, увидел.

Спустя 16 минут, 30 секунд (21.10.2011 - 15:36) Renden написал(а):
boomber
Ну да, ты просто дописываешь в него нужное, а в конце выполняешь 1 запрос.

Зы эта конструкция аналогична этому:

$sql = '';
if(!empty($_POST['date']))
$sql .= " myDate= '".mysql_real_escape_string($_POST['date'])."'";
else
$sql .= '';

Спустя 33 минуты, 26 секунд (21.10.2011 - 16:10) boomber написал(а):
Использовал немного другую конструкцию.
if (empty($i1) and empty($i2) and empty($i3)) {$query='UPDATE//целевым полям присвоил null//;} else {
$query='UPDATE... все поля, включая эти три...;}

Правда завязка идет на проверку сразу всех трех значений, но мне другоуго и не надо.
Спасибо за наводку :).
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.