The default error mode for mysqli
calls is now changed from silent mode to Exception mode. This doesn’t affect PDO
object since PHP Data Object is already throwing Exception by default.
This change is setting the default mysqli error reporting mode to exception mode. The new setting would be the same as manually setting the error mode with the following line of code:
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
This change will save developers countless hours of debugging. It will also bring the behavior of this extension in line with PDO and the rest of PHP.
mysqli_report(MYSQLI_REPORT_OFF);
$mysqli = new mysqli("localhost", "user", "password", "database");
$result = $mysqli->query('SELECT * FROM invalid_table');
if (false === $result) {
my_error_handling_function($mysqli->error);
}
MYSQLI_REPORT_ERROR
will tell mysqli to throw a warning error message when an error is encountered. The code is not stopped and continues to execute.
MYSQLI_REPORT_STRICT
will tell mysqli to throw mysqli_sql_exception
instead whenever it would throw a warning. It doesn’t control whether errors are reported, but instead controls how they are reported. The only code that throws a warning without MYSQLI_REPORT_ERROR
is the connection code.
More about PHP 8.1
Read about all PHP 8.1 features and changes in here.