Я вижу пару вопросов здесь и в других местах, которые решают эту проблему в некоторых случаях, но не совсем то, что мне нужно.
Я работаю со сценарием, который хранит массив значений для вставки или обновления на основе изменений.
некоторые даты / время установлены, а некоторые равны нулю.я пытаюсь с $ var = NULL, затем вставка с вставкой в ... ('{$ var}') и получения 00:00:00 для времени, если ноль, и времени, если время установлено.
вставка с $ var = "NULL" и вставка в ... ('{$ var}') и получение 00:00:00, если ноль, и времени, если время установлено.
если я удаляю кавычки для вставки ... ({$ var}) он работает, если ноль, но если дата не равна нулю, это, конечно, завершается ошибкой.
У меня есть другое поле VARCHAR, с которым я делаю то же самое, и оно отлично работает.т.е. если есть строка, то она передается как строка, и если она пустая, я устанавливаю, что var = null.Я использую кавычки в запросе вставки, и если он равен нулю, он входит как ноль, а если не ноль, строка вставляет.
Использование условного оператора потребует довольно большой переписки, поэтому я надеюсь избежать этого.
любые предложения о том, как заставить эту работу работать без утверждений IF (если возможно), могут помочь.
спасибо.
Я проверил это несколькими способами, и я не могу получить желаемые результаты без заполнения полей даты / времени VARCHAR, чего я не хочу делать.Вот структура БД, запросы на вставку и результаты.
id int(11) No None AUTO_INCREMENT
event_new_date_start date Yes NULL
event_new_time_start time Yes NULL
event_link varchar(150) latin1_swedish_ci Yes NULL
$event_new_date_start1 = 'NULL';
$event_new_time_start1 = 'NULL';
$event_link1 = 'NULL';
$event_new_date_start2 = '2011-04-04';
$event_new_time_start2 = '13:13';
$event_link2 = 'http://abc.com';
$event_new_date_start3 = NULL;
$event_new_time_start3 = NULL;
$event_link3 = NULL;
mysql_query("
insert into test_dates (event_new_date_start, event_new_time_start, event_link) values
('{$event_new_date_start1}', '{$event_new_time_start1}', '{$event_link1}')
");
mysql_query("
insert into test_dates (event_new_date_start, event_new_time_start, event_link) values
('{$event_new_date_start2}', '{$event_new_time_start2}', '{$event_link2}')
");
mysql_query("
insert into test_dates (event_new_date_start, event_new_time_start, event_link) values
('{$event_new_date_start3}', '{$event_new_time_start3}', '{$event_link3}')
");
1 0000-00-00 00:00:00 NULL
2 2011-04-04 13:13:00 http://abc.com
3 0000-00-00 00:00:00
Когда я изменил поля даты / времени на CHAR, все работало, как и ожидалось, с использованием кавычек в запросе.
4 NULL NULL NULL
5 2011-04-04 13:13 http://abc.com
6