Доброго дня, Долго рылся в интернете и ничего не смог найти такого чтобы мне подошло. Суть в чем: пишу отдельный скрипт но который использует классы джумлы подключаю классы так: define( '_JEXEC', 1 ); define('JPATH_BASE', dirname(__FILE__) ); define( 'DS', DIRECTORY_SEPARATOR ); require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' ); require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' ); JDEBUG ? $_PROFILER->mark( 'afterLoad' ) : null; $mainframe =& JFactory::getApplication('site'); (если что-то лишнее поправте пожалуйста) и хотелось бы в скрипте отловить ошибку ну например когда нет конекта к бд дабы заменить на свою. Тоесть при отсутствии конекта получаем ответ в браузере: Database Error: Unable to connect to the database:Could not connect to MySQL но сколько и чего не пробовал никак не выходит отловить у меня эту ошибку и поменять на то что нужно. пробовал вот так $db =& JFactory::getDBO(); if ($db->connected()) { $query = "SELECT * FROM #__users where username='test'"; $db->setQuery( $query ); print_r($db->loadObjectList()); }else {echo "error";} результата не дало. Так же пробовал пользоваться $db->getErrorMsg() тот же результат. Ув. ГУРУ подскажите реально ли это сделать и если да то как?
Таким образом получите вывод стандартной ошибки Код (PHP): $db->setQuery( $query ); if(!$db->query()) { echo __LINE__.$db->stderr(); } Ну а так, можете написать все что угодно ))) Код (PHP): $db->setQuery( $query ); if(!$db->query()) { echo "FIRE !!!"; }
cпасибо за ответ, но это тоже не выход ибо в данном случае мы отловим только ошибку которая может произойти во время запроса, а если нет соединения к базе то к сожалению джумла выводит ошибку Database Error: Unable to connect to the database:Could not connect to MySQL и прерывает дальнейшее выполнение скрипта насколько я понял из кода д \libraries\joomla\factory.php line:565 jexit('Database Error: ' . $db->toString() ); и похоже в моем случае необходимо модифицыровать этот класс. Вот только пока не знаю как это сделать, еще не пришла мысль в голову =) плохо выспался ночью =) Но и за этот пример вам спасибо ибо это тоже мне пригодится.
Код (PHP): $db =& JFactory::getDBO(); if ($err = $db->getErrorMsg()) { echo "Fail =|"; } else { //работаем с бд дальше }