Обработка ошибок MySQL (или как вы это делаете?)

Danilevsky

Новичок
Обработка ошибок MySQL (или как вы это делаете?)

Доброго всем времни суток, уважаемые!
Хотелось бы узнать мнение опытных, или же не особо опытных, но трезво мыслящих программистов PHP касательно обработки ошибок MySQL:
Всякое может случится: ошибка MySQL, ошибка сервера, соединения с интернетом, и черт его знает что еще...
Что-бы было понятнее приведу простой пример проверки существования записи в базе данных:
PHP:
mysql_pconnect("localhost", "user", "pass");
mysql_select_db("database");
$db_query = mysql_query("select * from table where email = '$email'");
if (mysql_num_rows($db_query)>0)
{ echo 'Мыло присутствует в базе данных!'; }
else { echo 'Мыла нет в базе данных!'; }
Некоторые ту же процедуру осуществляют немного подругому:
PHP:
$db_connect = mysql_pconnect("localhost", "user", "pass");
if (!$db_connect)
{ echo "Произошла ошибка №1 ! Повоторите попытку позже."; }
else
{
$db_select = mysql_select_db("database");
if (!$db_select)
{ echo "Произошла ошибка №2 ! Повоторите попытку позже."; }
else
{
$db_query = mysql_query("select * from table where email = '$email'");
if (!$db_query)
{ echo "Произошла ошибка №3 ! Повоторите попытку позже."; }
else
{
if (mysql_num_rows($db_query)>0)
{ echo "Мыло присутствует в базе данных!"; }
else
{ echo "Мыла нет в базе данных!"; }
}
}
}
Собственно вопрос:
Какое ваше мнение по поводу способа обработки подобных ошибок?
Заранее спасибо всем тем, кому не лень было читать вышеуказанное!
 

neko

tеam neko
мне как-то непонятно почему ты разные ошибки лепишь в кучу.

одно дело когда у тебя connect не срабатывает.
это ошибка из серии "все пропало, шеф".
пользователю об этом знать не обязательно -- а вот тебе надо непременно.
поэтому ничего выводить тем более с номерами ненадо, надо это где-то фиксировать.

совсем другое дело если e-mail не найден.
причем тут "повторите позже"?
если это человек так ввел -- тем более это никакая не ошибка.
и зачем этот #2?

короче все слеплено в кучу.
 

Danilevsky

Новичок
neko, как зачем №2, допустим соединение с MySQL прошло удачно, но по каким-то причинам не удалось выбрать базу данных. (Разве такое не может быть?)
А касательно "Повторите попытку позже": тут имеется в виду что адрес мыла как раз указан правильно, но произошла, какая - то неопределенная ошибка...
 

neko

tеam neko
смысл моего поста в том, что это пользователю не нужно.
это нужно тебе.
нумеровать можно как угодно -- главное чтобы ты это увидел, а не несчастный который залез на сайт.

я делал так.
стандартными стредствами устанавливается обработчик ошибок который. если что не так юзеров выкидывает на страницу по типу "зайдите завтра". а сама ошибка с бектрейсом куда-нибудь сохраняется.

а вот так каждый оператор обрамлять проверкой это конечно ужасный труд.
 

Danilevsky

Новичок
neko, смысл, твоего поста я понял, и скорей всего, это наиболее удачный способ...

-~{}~ 27.12.05 09:24:

neko, а вообще из твоего опыта, такие ошибки часто происходять, и от чего может зависеть их природа? Есть ли способы их избежать?
 

neko

tеam neko
"такие" это когда с mysql-сервером не соединиться?
эти бывают на перегруженных сайтах.
избежать можно путем аккуратной настройки всего и вся.
 

Danilevsky

Новичок
neko, пришел к выводу, что предложенный тоой способ более подходящий чем первые, а какой способ фикасации ошибок ты предпочитаешь?
 

Фанат

oncle terrible
Команда форума
что ты называешь словом "фиксация ошибок" и какие именно ошибки имеешь в виду

-~{}~ 27.12.05 11:21:

вообще, тебе бы надо понять, что такие вещи, как
- ошибка
- сообщение об ошибке
- информирование пользователя об ошибке
это всё РАЗНЫЕ вещи.
 

Danilevsky

Новичок
Фанат, я понимаю что это разные веши (ошибка и информирование пользователя об ошибке). Я имею в виду как мне хранить ошибки, о которых должен знать только я. (имеются в виду ошибки MySQL) Записывать в текстовый файл? или есть альтернативные варианты?
 

Фанат

oncle terrible
Команда форума
этот текстовый файл называется error log
можешь, к примеру, ознакомиться с одноимённой функцией.
там же ты увидишь и альтернативные способы
 
Сверху