All I’m trying to do is verify a query.
'SELECT * from table_that_does_not_exist'
Without that erroring out, I’d like to know it failed so I can return a response that states “Error: table does not exist” or the generic error.
Advertisement
Answer
The simplest way to catch any sql
syntax or query errors is to catch an IlluminateDatabaseQueryException
after providing closure to your query:
try { $results = DB::connection("example") ->select(DB::raw("SELECT * FROM unknown_table")) ->first(); // Closures include ->first(), ->get(), ->pluck(), etc. } catch(IlluminateDatabaseQueryException $ex){ dd($ex->getMessage()); // Note any method of class PDOException can be called on $ex. }
If there are any errors, the program will die(var_dump(...))
whatever it needs to.
Note: For namespacing, you need to first if the class is not included as a
use
statement.
Also for reference: