Forum Webscript.Ru
Общие => Базы данных => Тема начата: cosss от 08 Февраля 2004, 22:41:12
-
не стампится че-то...
делаю так
INSERT INTO $table VALUES (
\'null\'
\'$today\'
\'$_POST[title]\'
\'$_POST[text]\'
\'$uploadfile\'
\'null\'
Вот тот последний null должен писаться в time(timestamp)
пишеться 00000000000000 :)
а вот первый null пишеться в id (auto_increment) ти\\\\и все нормально... Что делаю не так?
-
слово timestamp имеет в mysql не то значение, что в PHP
тебе следует изменить тип поля на int, ибо юниксовый таймстамп - это и есть просто целое число.
-
cosss
Сделай как сказал Ромик (т.е поле для timestamp должно быть INT( 11 ) NOT NULL)
И делай так -
INSERT INTO $table VALUES (
\'null\'
\'$today\'
\'$_POST[title]\'
\'$_POST[text]\'
\'$uploadfile\'
UNIX_TIMESTAMP()
)
Без всяких кавычек
-
it4all
Запятые в запросе расставь.
-
что-то вы всё не про то, ребята
cosss
разницу между строкой "null" и ключевым словом NULL понимаешь?
-
эва.
торможу
-
гоша
Если честно, несовсем, я думал это что-то вроде "ничто".
-
какое из них?
-
в оправдание напишу, что вопрос был задан в форуме по пхп и передвину его туда, где он на месте :-)
-
и, чтобы было понятнее:
разницу между строкой "null" и ключевым словом NULL понимаешь?
-
Ладна отвечу чеснто, не понимаю.
-
да дело не в честно :-)
тебя никто не хочет уличить ни в чем :-)
Просто надо было вяснить, что тебе объяснять.
вот смотри:
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
-
RomikChef
Яснее некуда. Спасибо большое, все работает.
-
RomikChef
а запись ноля равнозначна записи null
А вот тут ты кажется не прав. 0 не эквивалентен NULL, во всяком случае не всегда.
-
Например, цитата из "SQL. Полное руководство":
Когда СУБД сравнивает значения двух выражений, могут получиться три результата:
- ...
- ...
- если хотя бы одно из двух выражений имеет значение NULL, то результатом будет NULL.
И это только один пример. Их можно привести много.
-
ты всегда такой тормоз, или только когда не выспишься?
RomikChef:
с автоинкрементом ... запись ноля равнозначна записи null
-
RomikChef
запись ноля в поле с автоинкрементом?
-
запись ноля в поле с автоинкрементом
-
RomikChef
:D :appl:
-
Ром, в новых версиях MySQL существует несколько режимов работы и в некоторых случаях запись 0 и NULL в автоинкремент не идентичны, т.е. при добавлении 0 будет 0 и вставляться, а не инкрементироваться значение.
Ну это так .. информация на будущее.
-
fidget
ИМХО, достаточно ценная информация.
Спасибо!
-
fidget
А вот и нет, autoincrement вообще не сбрасывается.
-
cosss
ты просто не понял, о чем речь.
В этом случае надо промолчать (как я) или вежливо спросить.
-
RomikChef
Не уж-то ты не понял о чем речь и промолчал?
Мда нужно внимательней читать посты (про себя)
-
cosss, а при чем тут сбрасывание?
Ты таки не понял о чем я говорила.