Одиночные элементы только для чтения, хранящие некоторое глобальное состояние (пользовательский язык, помогите filepath, путь приложения) разумны. Остерегайтесь использования одиночных элементов для управления бизнес-логикой - единственный, почти всегда заканчивает тем, что был [приблизительно 110]
Если это происходит, то это потому, что столбец был определен с NOT NULL
или с по умолчанию «0000-00-00»
. Вам нужно изменить определение столбца, чтобы разрешить NULL
s и не иметь значения по умолчанию.
Ваша вставка также должна указывать NULL, а не ''
, если вы это имеете в виду на "пустое значение".
Just omit the field when your doing your insert.
Say your table is like this:
CREATE TABLE mytable(
`name` VARCHAR(30) NOT NULL,
`payment_due_on` date DEFAULT NULL);
If you want to insert something without the date, use:
INSERT INTO mytable (name) VALUES ('name here');
фу ... немного боролся с этим нулевым.
У меня был скрипт php, который копирует, форматирует и сохраняет данные из одной базы данных A в базу данных B. В базе данных A было поле даты со значениями NULL. но когда я скопировал его, в моей базе данных B.
наконец-то выяснилось, что это произошло из-за того, что я заключил NULL в одинарные кавычки, например ('NULL').
$started_date = mysql_result($databaseA['result'],$i,"start_date");
if (empty($published_at_date)){
$insert_sql .= "NULL, ";
}
else
{
$insert_sql .= " '" . mysql_real_escape_string($started_date) ."', ";
}
Это исправило это.