Как сохранить текст ошибки sql и другие?

Статус
Закрыто для дальнейших ответов.

FiRеFоX

V.I.P.
Регистрация
07.08.2010
Сообщения
744
Допустим ошибки на сайте вырублены, но мне надо как-то себя уведомить о том, что появилась ошибка у какого-то пользователя, как это сделать?
Ну написал я функцию для sql запросов:
Код:
function sql_error ($sql,$pers_login,$login_admin,$mes_table){
$mysql=mysql_query($sql);
if(mysql_error()){
//Сохрянем текст ошибки в лог и отправляе мне письмо
}
}
//$sql - сам запрос
//$pers_login - логин пользователя у кого ошибка появилась
//Мой логин
//Таблица эррора
Но это не то что надо. Текст совсем другой в отличии от того, что выводится на странице, если вывод включить.

Код:
Warning: mysql_result(): supplied argument is not a valid MySQL result resource in D:\VertrigoServ\www\site.ru\config.php on line 135
//Эта ошибка лезет на страницу, если они включены для вывода
Код:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near select * from ...бла бла бла at line 1
Где будет проще найти ошибку? Конечно смотря на первый вариант, сразу полезешь в строку 135 смареть че там за фигня.
А из второго вариант нифига не понятно.. только запрос.. да у меня на сайте таких запросов похожих десятки.. каждый перебирать замучаешься..
------------------------------------
Вот как-то можно сохранить то, что выходит на странице (выводится в браузер пользователю) или нет?
И не только sql ошибки, но и все остальные.. но хотя бы только с sql..
 

lekzd

parse error: parse error, unexpected T_STRING...
Регистрация
17.02.2011
Сообщения
1 125
SQL ошибки я ловлю обрамляя все операции запроса к БД в ob_start(); и ob_get_clean(); , где последняя будет возвращать все то, что вывелось
для это подойдет самая простая обертка функции запроса к БД

для всего остального есть http://php.net/manual/ru/function.set-error-handler.php
 

FiRеFоX

V.I.P.
Регистрация
07.08.2010
Сообщения
744
SQL ошибки я ловлю обрамляя все операции запроса к БД в ob_start(); и ob_get_clean(); , где последняя будет возвращать все то, что вывелось
для это подойдет самая простая обертка функции запроса к БД

для всего остального есть http://php.net/manua...ror-handler.php
Что-то у меня не получается:(
Код:
ob_start();
$sql=mysql_query("тут запрос с ошибкой");
$error=ob_get_clean();
//Заношу текст с ошибкой в бд, типа письмо себе внутри сайта
mysql_query("insert into `msg` (`id_login`,`text`) values('$id','$error')");
Так? Или как?
 

czp

czp
Регистрация
05.06.2011
Сообщения
635
php_value error_log "Z:/home/test.ru/мой путь/error.log"
php_flag log_errors on
php_flag display_errors off
аштаккес,как вариант, тогда ошибки вообше не высвечиваются, а записываются в логи, но если есть ошибка сайт не пускается))
я думаю там, как то можно настроить что бы пускался сайт с ошибками
 

FiRеFоX

V.I.P.
Регистрация
07.08.2010
Сообщения
744
php_value error_log "Z:/home/test.ru/мой путь/error.log"
php_flag log_errors on
php_flag display_errors off
аштаккес,как вариант, тогда ошибки вообше не высвечиваются, а записываются в логи, но если есть ошибка сайт не пускается))
я думаю там, как то можно настроить что бы пускался сайт с ошибками
У меня работает и с ошибками, если ошибка в запросе к базе))
Только в эррор лог, если я не ошибаюсь записываются ошибки и sql и пхп и вообще все, которые происходят на сервере..
А никак нельзя себя уведомить теперь об ошибке? Что бы вместо пустой белой страницы для пользователя вылезло сообщение, что админ в курсе ошибки и скоро её исправит))
 

czp

czp
Регистрация
05.06.2011
Сообщения
635
если я не ошибаюсь записываются ошибки и sql и пхп и вообще все
да все
а что за сервер? у вас там? хостинг? у меня наверное из за того что на денвере(( настроен апач криво((вот и не пускается при ошибке
--
наверное нужно ООП юзать тогда, там есть своя штука с контролем ошибок я не вникал в нее, то к хорошим ООПешникам стоит обратиться или литературе,
или сделать проверку типа :

Код:
if ($query) {
  $result = $query_result;
} else {
  $result = 'Ошибка запроса, админ перец блатной, ждите исправит';
}
echo $result;
--
ну
то то что мне на ум приходит, а там хочется услышать советы и других ребят, может что клевое подскажут
 

FiRеFоX

V.I.P.
Регистрация
07.08.2010
Сообщения
744
а что за сервер? у вас там? хостинг? у меня наверное из за того что на денвере(( настроен апач криво((вот и не пускается при ошибке
И на хостинге работает и на локале) На локале стоит VertrigoServ, денвер не нрав:( А вот при пхп ошибке вылезает ошибка и работа прекращается))
то то что мне на ум приходит, а там хочется услышать советы и других ребят, может что клевое подскажут
"Клевое" бесплатно врятле кто подскажет, 75% думают: "Нифига, я над этой же проблемой мучался месяца два, перегуглил гигабайты, а тут кому-то подскажу, как справиться с этой проблемой? Нее, не прокатит - пускай сам парится"
---------------------------------------
Мне вот интересно, как ведет себя сервер ситуации, когда возникает ошибка и стоит запись в лог? Сразу прекращает работу и выводит текст ошибки(или не выводит в зависмости от настройки) или доводит работу до конца и затем прекращает работу и выводит ошибку?
 
Статус
Закрыто для дальнейших ответов.
Верх Низ