[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Обработчик mysql ошибок
destin9000
Собственно вопрос - как задать обработчик mysql ошибок, либо как их вообще перехватывать, про mysql_error знаю.
Игорь_Vasinsky
Цитата
про mysql_error знаю

а что ещё надо?

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
destin9000
Цитата (Игорь_Vasinsky @ 18.02.2013 - 19:11)
Цитата
про mysql_error знаю

а что ещё надо?

Вызывать то ее когда?В каждом методе класса проверять?
kaww
if (!($res = mysql_query($query))) {

throw new Mysql_Exception(mysql_error(), mysql_errno());
}

а вообще есть вот такая замечательная штука http://www.php.net/manual/en/book.pdo.php
destin9000
Цитата (kaww @ 18.02.2013 - 19:24)
if (!($res = mysql_query($query))) {

throw new Mysql_Exception(mysql_error(), mysql_errno());
}

а вообще есть вот такая замечательная штука http://www.php.net/manual/en/book.pdo.php

И зачем использовать PDO?
Игорь_Vasinsky
по читаейте про обработку исключений в ООП

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
destin9000
Понял что PDO бросает исключение при ошибке..
Поставил свой обработчик через:
set_exception_handler

Другой вопрос: как обработчику определить что исключение бросил именно PDO?
Про try..catch знаю, не хотелось бы в каждом методе пихать данную конструкцию
bestxp
так вообще то так и нужно если там будет исключение то тогда провести обработку исключения, в идеале весь код оборачиваешь в try catch и смотришь какие там от PDO или от чего
destin9000
Цитата (bestxp @ 18.02.2013 - 22:50)
так вообще то так и нужно если там будет исключение то тогда провести обработку исключения, в идеале весь код оборачиваешь в try catch и смотришь какие там от PDO или от чего

В идеале?
Ни в одном фреймворке не видел НИ одного блока try-catch
kaww
Цитата
В идеале?
Ни в одном фреймворке не видел НИ одного блока try-catch

Видимо как-то плохо смотрели (по данным PHPStorm):
ZF 1.11 - 436 использований
Magento (cms, была открыта в ide) - 1907 использований
destin9000
Ясно, я просто не понимаю куда пихать try-catch, не весь код же оборачивать..
bestxp
в try catch Оборачивают тот участок где возможно исколючение, по не известной причине.
kaww
bestxp
, что значит по не известной причине? если оно бросается значит на то есть причина.
bestxp
kaww
порой бывает и такое, но не так выразился. причина то неизвестна, но она не относиться к коду, например упал сервер БД, переполнился файловый лимит и тд
SlavaFr
Цитата (destin9000 @ 19.02.2013 - 16:02)
Ясно, я просто не понимаю куда пихать try-catch, не весь код же оборачивать..

try-catch делается там, где ты хочеш отриагировать на конкретную ошибку и у тебя есть конкретный план, что ты в случае ошибки должен делать. В противном случае try-catch не неимеет вообще не какого смысла.

в примере kaww
try{
....
throw new Mysql_Exception(..);
......

} catch (Mysql_Exception $mysqlException) { //конкретная ошибка
//делаем то, что должно случится в случае ошибки в mysql
return; //обработали ошибку и уходим
} catch(Exceptin $otherProblem) { // обработка для всех остальных throws без различия типа Еxception
//обрабатываем здесь все остальные случаи
}


_____________
↓↓↓↓↓↓↓↓↓↓
ответ может быть здесь
или в mysql_error();
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.