1)
$res=mysql_query("select(UPDATE,INSERT) * from таблица where ip ='$ip' ") or die(mysql_error());
$res=mysql_fetch_array($res);
2)
$res=mysql_query("select(UPDATE,INSERT) * from 'таблица' where ip ='$ip' ");
$res=mysql_fetch_array($res);
А может существует вообще 3 самый нормальный вариант?!
А то каждый советует по разному
ПОДСКАЖИТЕ
Спустя 5 минут, 26 секунд (21.04.2010 - 15:12) DedMorozzz написал(а):
Цитата |
$res=mysql_query("select(UPDATE,INSERT) * from 'таблица' where ip ='$ip' "); |
эт даже работать не будет. Кавычки другие. Для ускорения - выбирай тоько нужные поля, а не всё и сразу. И аррей не всегда лучший вариант, там сразу 2 массива. Ассок порой лучше. А так чем 1 от 2го отличаеться фундаментально? Только выводом ошибки. т.е. это уже лучше
Спустя 1 минута, 58 секунд (21.04.2010 - 15:14) sergeiss написал(а):
На самом деле, тут всё зависит от того, что ты хочешь получить. Если тебе надо, чтобы при ошибке скрипт прервал выполнение, то пиши die(). Если же ты хочешь (автоматически) проанализировать причину ошибьки и/или что-то вывести еще, или сделать другой запрос, то тогда нафига тебе die()?
и дальше анализируем $res
Вместо mysql_fetch_array в большинстве случаев удобнее использовать mysql_fetch_assoc - получение результата выборки вместо ассоциативного массива.
В итоге можно получается не 3, а намного больше способов.
PS. Насчет грамотности запросов не говорю, а только о принципе работы с ними.
$res=@mysql_query("select(UPDATE,INSERT) * from `таблица` where ip ='$ip' ");
и дальше анализируем $res
Вместо mysql_fetch_array в большинстве случаев удобнее использовать mysql_fetch_assoc - получение результата выборки вместо ассоциативного массива.
В итоге можно получается не 3, а намного больше способов.
PS. Насчет грамотности запросов не говорю, а только о принципе работы с ними.
Спустя 4 минуты, 1 секунда (21.04.2010 - 15:18) blade написал(а):
НУ я использую die() для того чтобы если вдруг ошибка в запросе чтобы сразу же обрывалось все дальнейшее выполнение
Спустя 35 минут, 31 секунда (21.04.2010 - 15:53) glock18 написал(а):
Советую призадуматься над лозунгом языка Erlang "Let it crash!!" (пусть падает!!).
В оригинале это относится к приложениям сложнее сайтов использующим многопоточную структуру. Однако, принципа следует придерживаться везде. Никогда и ничто не должно рушить все приложение. Если какой-то модуль отказал, приложение должно проглотить это, обработать и выдать пользователю нормальный результат.
В оригинале это относится к приложениям сложнее сайтов использующим многопоточную структуру. Однако, принципа следует придерживаться везде. Никогда и ничто не должно рушить все приложение. Если какой-то модуль отказал, приложение должно проглотить это, обработать и выдать пользователю нормальный результат.
Спустя 4 минуты, 28 секунд (21.04.2010 - 15:58) DedMorozzz написал(а):
ну дык для отладки - die() самое оно. Сразу виден участок "проблемного" кода. В реальном приложении естесно норм всё должно быть...только ошибку всё равно писать в лог без вывода.
Спустя 1 минута, 10 секунд (21.04.2010 - 15:59) blade написал(а):
Цитата (glock18 @ 21.04.2010 - 12:53) |
Советую призадуматься над лозунгом языка Erlang "Let it crash!!" (пусть падает!!). В оригинале это относится к приложениям сложнее сайтов использующим многопоточную структуру. Однако, принципа следует придерживаться везде. Никогда и ничто не должно рушить все приложение. Если какой-то модуль отказал, приложение должно проглотить это, обработать и выдать пользователю нормальный результат. |
Я конечно согласен с Вами но как мне скрыть например ошибки если нет базы или коннекта с ней ? например такие (ошибки)
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in F:\home\obnov.ru\www\konkurscontrol.php on line 5
Спустя 4 минуты, 51 секунда (21.04.2010 - 16:04) DedMorozzz написал(а):
ерор репортинг отключи. И всегда на живом сайте так делай
Спустя 1 минута, 17 секунд (21.04.2010 - 16:05) blade написал(а):
Цитата (DedMorozzz @ 21.04.2010 - 13:04) |
ерор репортинг отключи. И всегда на живом сайте так делай |
а как его отключить?!
Спустя 3 минуты, 14 секунд (21.04.2010 - 16:08) glock18 написал(а):
если коннекта нет, то и запросы нечего выполнять. репортинг конечно отключить надо, но вообще то смысл в том, чтобы обрабатывать ошибки а не ронять приложение.
Спустя 8 минут, 32 секунды (21.04.2010 - 16:17) blade написал(а):
Был бы очень признателен если бы Вы мне помогли, объяснили где и как отключить репортинг
Спустя 3 минуты, 48 секунд (21.04.2010 - 16:20) glock18 написал(а):
Спустя 8 минут, 41 секунда (21.04.2010 - 16:29) blade написал(а):
спасибо!
Спустя 8 минут, 41 секунда (21.04.2010 - 16:38) sergeiss написал(а):
blade - но учти, что (в идеале) скрипты надо составлять так, чтобы не было никаких предупреждений. Чтобы даже когда они включены - то ничего бы не показывалось.
Спустя 19 минут, 49 секунд (21.04.2010 - 16:58) blade написал(а):
Цитата (sergeiss @ 21.04.2010 - 13:38) |
blade - но учти, что (в идеале) скрипты надо составлять так, чтобы не было никаких предупреждений. Чтобы даже когда они включены - то ничего бы не показывалось. |
А как это сделать?
НУ или напишите пример правильного запроса
ЗЫ :Я в пхп еще новичок так что извините за тупые вопросы
Спустя 2 часа, 39 минут, 15 секунд (21.04.2010 - 19:37) sergeiss написал(а):
Цитата (blade @ 21.04.2010 - 17:58) |
А как это сделать? |
Очень просто
Ты наоборот НЕ ВЫКЛЮЧАЙ ошибки. Ищи причины их появления. И делай так, чтобы они не выходили. Так и научишься.
Это может быть и использование переменной, которая ранее не была объявлена, это может быть и ошибка в запросе, и много чего другого. Чем больше будешь кодить, тем больше "граблей" найдешь (и устранишь), тем лучше будешь дальшь программировать.