Forum Webscript.Ru

Общие => Базы данных => Тема начата: cosss от 08 Февраля 2004, 22:41:12

Название: timestamp
Отправлено: 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
Отправлено: Меняздесьдавнонет от 08 Февраля 2004, 22:44:40
слово timestamp имеет в mysql не то значение, что в PHP
тебе следует изменить тип поля на int, ибо юниксовый таймстамп - это и есть просто целое число.
Название: timestamp
Отправлено: it4all от 09 Февраля 2004, 12:03:46
cosss
Сделай как сказал Ромик (т.е поле для  timestamp  должно быть INT( 11 ) NOT NULL)
И делай так -
INSERT INTO $table VALUES (
\'null\'
\'$today\'
\'$_POST[title]\'
\'$_POST[text]\'
\'$uploadfile\'
UNIX_TIMESTAMP()
)
Без всяких кавычек
Название: timestamp
Отправлено: Croaker от 09 Февраля 2004, 12:05:57
it4all
Запятые в запросе расставь.
Название: timestamp
Отправлено: гоша от 09 Февраля 2004, 12:35:55
что-то вы всё не про то, ребята

cosss

разницу между строкой "null" и ключевым словом NULL понимаешь?
Название: timestamp
Отправлено: Меняздесьдавнонет от 09 Февраля 2004, 13:25:53
эва.
торможу
Название: timestamp
Отправлено: cosss от 09 Февраля 2004, 19:04:33
гоша
Если честно, несовсем, я думал это что-то вроде "ничто".
Название: timestamp
Отправлено: Меняздесьдавнонет от 09 Февраля 2004, 19:13:40
какое из них?
Название: timestamp
Отправлено: Меняздесьдавнонет от 09 Февраля 2004, 19:15:39
в оправдание напишу, что вопрос был задан в форуме по пхп и передвину его туда, где он на месте :-)
Название: timestamp
Отправлено: Меняздесьдавнонет от 09 Февраля 2004, 19:23:46
и, чтобы было понятнее:
разницу между строкой "null" и ключевым словом NULL понимаешь?
Название: timestamp
Отправлено: cosss от 09 Февраля 2004, 20:58:25
Ладна отвечу чеснто, не понимаю.
Название: timestamp
Отправлено: Меняздесьдавнонет от 09 Февраля 2004, 21:58:18
да дело не в честно :-)
тебя никто не хочет уличить ни в чем :-)
Просто надо было вяснить, что тебе объяснять.
вот смотри:

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
Название: timestamp
Отправлено: cosss от 11 Февраля 2004, 00:54:30
RomikChef
Яснее некуда. Спасибо большое, все работает.
Название: timestamp
Отправлено: metton от 14 Февраля 2004, 03:14:24
RomikChef
Цитировать
а запись ноля равнозначна записи null

А вот тут ты кажется не прав. 0 не эквивалентен NULL, во всяком случае не всегда.
Название: timestamp
Отправлено: metton от 14 Февраля 2004, 03:27:46
Например, цитата из "SQL. Полное руководство":
Цитировать

Когда СУБД сравнивает значения двух выражений, могут получиться три результата:
- ...
- ...
- если хотя бы одно из двух выражений имеет значение NULL, то результатом будет NULL.


И это только один пример. Их можно привести много.
Название: timestamp
Отправлено: Меняздесьдавнонет от 14 Февраля 2004, 10:51:46
ты всегда такой тормоз, или только когда не выспишься?
Цитировать
RomikChef:
с автоинкрементом ... запись ноля равнозначна записи null
Название: timestamp
Отправлено: metton от 14 Февраля 2004, 18:03:00
RomikChef
запись ноля в поле с автоинкрементом?
Название: timestamp
Отправлено: Меняздесьдавнонет от 14 Февраля 2004, 22:20:28
запись ноля в поле с автоинкрементом
Название: timestamp
Отправлено: cosss от 19 Февраля 2004, 23:12:49
RomikChef
:D :appl:
Название: timestamp
Отправлено: fidget от 20 Февраля 2004, 11:42:30
Ром, в новых версиях MySQL существует несколько режимов работы и в некоторых случаях запись 0 и NULL в автоинкремент не идентичны, т.е. при добавлении 0 будет 0 и вставляться, а не инкрементироваться значение.
Ну это так .. информация на будущее.
Название: timestamp
Отправлено: FreeSpace от 20 Февраля 2004, 19:58:48
fidget
ИМХО, достаточно ценная информация.
Спасибо!
Название: timestamp
Отправлено: cosss от 20 Февраля 2004, 23:19:04
fidget
А вот и нет, autoincrement вообще не сбрасывается.
Название: timestamp
Отправлено: Меняздесьдавнонет от 20 Февраля 2004, 23:44:08
cosss
ты просто не понял, о чем речь.
В этом случае надо промолчать (как я) или вежливо спросить.
Название: timestamp
Отправлено: cosss от 21 Февраля 2004, 00:49:51
RomikChef
Не уж-то ты не понял о чем речь и промолчал?

Мда нужно внимательней читать посты (про себя)
Название: timestamp
Отправлено: fidget от 21 Февраля 2004, 15:12:38
cosss, а при чем тут сбрасывание?
Ты таки не понял о чем я говорила.