How do I catch a query exception in laravel to see if it fails?
If you want to catch all types of database exceptions you can catch it on laravel Exception Handler
if ($exception instanceof \PDOException) {
# render a custom error
}
for more details about how to use laravel Exception Handler
check https://laravel.com/docs/7.x/errors
Wrap the lines of code you wish to catch an exception on using try-catch statements
try
{
//write your codes here
}
catch(Exception $e)
{
dd($e->getMessage());
}
Do not forget to include the Exception class at the top of your controller by saying
Use Exception;
The simplest way to catch any sql
syntax or query errors is to catch an Illuminate\Database\QueryException
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(\Illuminate\Database\QueryException $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:
Laravel 5.5 API - Query Exception
Laravel 8.x API - Query Exception