The mysqli_sql_exception class

(PHP 5, PHP 7, PHP 8)

Introduction

The mysqli exception handling class.

Class synopsis

final class mysqli_sql_exception extends RuntimeException {
/* Properties */
protected string $sqlstate = "00000";
/* Inherited properties */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Methods */
public getSqlState(): string
/* Inherited methods */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
}

Properties

sqlstate

The sql state with the error.

Table of Contents

add a note add a note

User Contributed Notes 5 notes

up
6
fibrizo dot raziel at gmail dot com
8 years 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); ?>
up
2
dronebraindeveloper at gmail dot com
11 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();
}
?>
up
-5
callforeach at gmail dot com
9 years 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.
up
-18
polyanin at gmail dot com
10 years ago
$driver = new mysqli_driver();
        $driver->report_mode = MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT;
up
-28
cnlyzy at qq dot com
6 years ago
<?php
mysqli_report
(MYSQLI_REPORT_STRICT);
try {
   
$mysqli = new mysqli('127.0.0.1','uesr','password','testDB');
    echo
'connect success';
} catch (
Exception $e) {
    echo
'ERROR:'.$e->getMessage();
}
To Top