Обработка ошибки mysql

elven

Новичок
Обработка ошибки mysql

Как сделать так чтобы, если нет соединения с базой, то шел бы редирект на другую страницу.

Попробовал:

PHP:
if (!@mysql_query($sql))  {header("location:".$location);}
но не сработало. Как сделать?
 

Krisha

pain in the neck
elven
коннект с базой осуществляется функцией [m]mysql_connect[/m]
 

elven

Новичок
я знаю, но мне кто сказал, что
mysql_query может выдавать false

а что конструкция:
PHP:
if (!@mysql_connect(...))  {header("location:".$location);}
будет работать? пробовал, не помогло.
 

Krisha

pain in the neck
elven
Ты открывал ту ссылку, которую я тебе дал?
Ты пробовал почитать описание функции [m]mysql_query[/m] ?
 

elven

Новичок
прочитал, выяснил что он тоже может давать false
попробовал изменить не помогло. что я не правильно делаю?
 

Krisha

pain in the neck
elven
ты неправильно задаешь вопрос

-~{}~ 16.09.05 17:46:

Автор оригинала: elven
прочитал, выяснил что он тоже может давать false
не он, а она, и не давать, а возвращать

попробовал изменить не помогло. что я не правильно делаю?
как пробовал, как проверял, что не работает?
 

elven

Новичок
согласен, неправильно выразился.
делаю проверку:

PHP:
if (!@mysql_connect("localhost",$name,$pass)) {header("location:".$location);}
для проверки убрал !
PHP:
if (@mysql_connect("localhost",$name,$pass)) {header("location:".$location);}
по логике, если соединение было установлено, то должен был бы редирект. но этого не происходит

-~{}~ 16.09.05 18:55:

предыистория вопроса такова:
у моего провайдера почему то часто падает mysql.
в этом случае на моем сайте куча сообщений, что не может соединиться с базой данных.
Вот и решил сделать так, чтобы если связь с базой не устанавливается, то запускается новая страница с сообщением, что сайт временно не работает.

-~{}~ 16.09.05 18:56:

как это реализовать?
 

elven

Новичок
Автор оригинала: Фанат
а просто header("location:".$location); - работает?
мне нужен редирект только в том случае, если нет соединения с mysql базой, поэтому и ставлю проверку, но что то не срабатывает. Видимо неправильно делаю.

-~{}~ 17.09.05 01:03:

да конечно, без проверки, напрямую, работает
 

Фанат

oncle terrible
Команда форума
чувак.
я знаю, что тебе нужно. не такой тупой.

тфы можешь ответить на вопрос - У ТЕБЯ ВООБЩЕ локейшен работает? с базой или без?
 

elven

Новичок
извини, позже дошел смысл :). Ответил выше, да работает
 

Фанат

oncle terrible
Команда форума
слава богу.
теперь сделай так:
if (@mysql_connect("localhost",$name,$pass)) echo ("location:".$location);

что выведет?
 

elven

Новичок
разобрался. когда добавил break; заработало.
Проверка прошла:
PHP:
if (@mysql_connect("localhost",$name,$pass)) {header("location:".$location); brake;}
-~{}~ 17.09.05 01:10:

всем большое спасибо за помощь. Теперь буду ждать очередного падения сервака mysql, чтобы проверить в боевых условиях :)
 
Сверху