- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
Сколько говна уже придумано было...:
$lasthour = date("Y-m-d H:i:s", mktime(date("H")-1, date("i"), date("s"), date("m"), date("d"), date("Y")));
$query = "
UPDATE user_sid
SET online = 0
WHERE date_action < '{$lasthour}'
";
$sql->query($query);
Вместо простого и понятного:
$query = "
UPDATE user_sid
SET online = 0
WHERE date_action < DATE_FORMAT( NOW( ) - INTERVAL 1 HOUR , '%Y-%m-%d %H:%i:%s' )
";
$sql->query($query);
1_and_0 25.11.2010 11:46 # 0
$query = "
UPDATE user_sid
SET online = 0
WHERE date_action < NOW( ) - INTERVAL 1 HOUR";
$sql->query($query);
telnet 25.11.2010 12:05 # 0
1_and_0 25.11.2010 12:11 # 0
telnet 25.11.2010 12:15 # 0
Да.
> только время БД
Я бы, наоборот, предпочёл время PHP. В БД оно только хранится, управляющая-то логика вся в PHP.
1_and_0 25.11.2010 12:27 # 0
Где участвует время в логике проекта, если не трудно, 1 пример приведите пожалуйста.
telnet 25.11.2010 21:36 # +1
Ну так вот, по уму следовало бы либо занести имя файла в базу с помощью NOW(), а потом сделать лишний селект, чтобы его вытащить и поименовать файл, либо поименовать файл time()'ом и потом уже занести его имя в базу. Выбор очевиден, имхо.
da4ever 27.11.2010 10:53 # 0
Vasiliy 25.11.2010 12:36 # 0
Uchkuma 25.11.2010 12:40 # −1
Если говно, это сразу видно. Поверьте мне.
3.14159265 25.11.2010 12:42 # 0
>Не унижайте себя до этого.
отлично сказано
1_and_0 25.11.2010 12:42 # 0
TarasB 25.11.2010 12:47 # +5
Uchkuma 25.11.2010 12:49 # −1
Вот как раз для фанатов Билана и Тимати приходится разъяснять. Но разве их голоса для нас авторитет?
TarasB 25.11.2010 13:19 # +3
rtfm 25.11.2010 12:54 # −3
на большом кол-во записей в БД - намного быстрее.
Анонимус 25.11.2010 13:52 # 0
HyperGeek 27.11.2010 11:03 # 0
zerkms 26.11.2010 05:52 # +2
scalar4eblo4no 25.11.2010 13:53 # +3
а в запросе DATE_FORMAT ни к чему
rtfm 25.11.2010 14:15 # 0
а DATE_FORMAT и NOW внутри WHERE ни к чему хорошему не приведут
1_and_0 25.11.2010 16:36 # 0
Int 25.11.2010 19:31 # +2
zerkms 26.11.2010 05:54 # +6
mktime(date("H")-1, date("i"), date("s"), date("m"), date("d"), date("Y"))
Что, если первый вызов пришёлся на 21:59:59.999. Тогда первая date("H") - вернёт 21, а второй вызов date("i") - вернёт 00. Итого дата сформируется совсем неправильная.
bugmenot 26.11.2010 08:11 # 0
bugmenot 26.11.2010 08:34 # 0
zerkms 26.11.2010 08:44 # +3
bugmenot 26.11.2010 11:22 # 0
telnet 26.11.2010 08:54 # +4
zerkms 26.11.2010 08:57 # +1
Я просто указал на сложноотлаживаемую ошибку.
Подобные ошибки консистентности и написение non-threadsafe кода в мультипоточных системах - самые геморные для отладки. Потому я и привёл пример, обучающий момент, так сказать.