<?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();
}
<?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();
}
<?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); ?>
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.
$driver = new mysqli_driver();
$driver->report_mode = MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT;
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();
}
?>