Общие > Базы данных
timestamp
cosss:
Ладна отвечу чеснто, не понимаю.
Меняздесьдавнонет:
да дело не в честно :-)
тебя никто не хочет уличить ни в чем :-)
Просто надо было вяснить, что тебе объяснять.
вот смотри:
null - это служебное слово. такое же, как select from update
если написать insert into table values (null) то вставится null означающий отсутствие значения, даже пустого.
А если insert into table values (\'null\') строка null
если ЛЮБУЮ строку заключить в кавычки, то это будет строка, а не служебное слово
select select Выдаст ошибку
select \'select\' выдаст select
так и в твоем случае.
ты вставляешь не NULL, а строку со значением NULL
с автоинкрементом у тебя получается потому, что база приводит строку "null" к числу, получается ноль, а запись ноля равнозначна записи null
а в дату когда записываешь, строка \'null\' не распознается, как дата, и записывается пустая.
Все ясно?
Еще тебе надо знать по синтаксису запросов две вещи
1. Есть еще обратные кавычки. находится слева от клавиши `1` в английской раскладке.
в них надо заключать имена полей и таблиц, если они совпадают с ключевыми словами.
ДОПУСТИМ, что у нас есть таблица from с полем select
пишем
select `select`from `from`
если мы напишем
select select
то получим оошибку
если
select \'select\'
то получим слово select вместо значения поля
понятно?
2. http://faq.phpclub.net/slashes
cosss:
RomikChef
Яснее некуда. Спасибо большое, все работает.
metton:
RomikChef
--- Цитировать ---а запись ноля равнозначна записи null
--- Конец цитаты ---
А вот тут ты кажется не прав. 0 не эквивалентен NULL, во всяком случае не всегда.
metton:
Например, цитата из "SQL. Полное руководство":
--- Цитировать ---
Когда СУБД сравнивает значения двух выражений, могут получиться три результата:
- ...
- ...
- если хотя бы одно из двух выражений имеет значение NULL, то результатом будет NULL.
--- Конец цитаты ---
И это только один пример. Их можно привести много.
Навигация
Перейти к полной версии