PHP 7.0.6 Released

The mysqli_sql_exception class

(PHP 5, PHP 7)

Introduction

The mysqli exception handling class.

Class synopsis

mysqli_sql_exception extends RuntimeException {
/* Properties */
protected string $sqlstate ;
/* Inherited properties */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
}

Properties

sqlstate

The sql state with the error.

User Contributed Notes

fibrizo dot raziel at gmail dot com
5 months ago
<?php  mysqli_report(MYSQLI_REPORT_STRICT) ?>
was not enough for me to enable exception throwing. I had to write this:
<?php mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); ?>
dronebraindeveloper at gmail dot com
3 years ago
Quick note on how to setup and use mysqli_sql_exceptions properly

<?php
define
("MYSQL_CONN_ERROR", "Unable to connect to database.");

// Ensure reporting is setup correctly
mysqli_report(MYSQLI_REPORT_STRICT);

// Connect function for database access
function connect($usr,$pw,$db,$host) {
   try {
     
$mysqli = new mysqli($host,$usr,$pw,$db);
     
$connected = true;
   } catch (
mysqli_sql_exception $e) {
      throw
$e;
   }
}

try {
 
connect('username','password','database','host');
  echo
'Connected to database';
} catch (
Exception $e) {
  echo
$e->errorMessage();
}
?>
callforeach at gmail dot com
1 year ago
Please note that MYSQLI_REPORT_STRICT does not allow certain exceptions to be trapped. I find MYSQLI_REPORT_ALL to be more friendly since it allows me to trap all errors and handle them appropriately.
callforeach at gmail dot com
10 months ago
You need to be careful when using MYSQLI_REPORT_ALL, if the exceptions are not handled properly, end users may use it a tool to aid them in implementing sql injection.
polyanin at gmail dot com
2 years ago
$driver = new mysqli_driver();
        $driver->report_mode = MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT;
To Top