But it's give a many information using $e->getTrace() is this correct. If there are several mysql_query then I can put it as bunch within try block and catch exception easily.
No, it doesn't give any such information. 1 :<?php 2 :mysql_connect('server', 'username', 'password'); 3 :mysql_select_db('database_name'); 4 : 5 :try{ 6 : $result = mysql_query('SELECT * from unknowntable'); 7 : echo __LINE__ . "\n"; 8 :}catch(exception $e){ 9 : echo __LINE__ . "\n"; 10:} Line numbers added for effect. It will print the line number in the "try". It never prints the line number in the "catch". $ php -f ./test.php 7
In second approach for every query I have to write throw new MySQLException("My Message"). It's very time consuming isn't it?
Use a database abstraction layer and run everything through that or simply use a function.
function Query($query='') { if (!$query) { throw new Exception("No query passed to Query method"); } $result = mysql_query($query); if (!$result) { throw new Exception("Query " . $query . " is invalid."); } return $result; } Then simply: $myquery = "select * from table_that_exists"; try { $result = Query($myquery); echo "Got result \n"; } catch (Exception $e) { echo $e->getMessage() . "\n"; // ... do whatever here. } $myquery = "select * from table_that_doesnt_exist"; try { $result = Query($myquery); echo "Got result\n"; } catch (Exception $e) { echo $e->getMessage() . "\n"; // ... do whatever here. } -- Postgresql & php tutorials http://www.designmagick.com/ -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php