laminas / laminas-db

Database abstraction layer, SQL abstraction, result set abstraction, and RowDataGateway and TableDataGateway implementations
https://docs.laminas.dev/laminas-db/
BSD 3-Clause "New" or "Revised" License
119 stars 66 forks source link

Enable mysqli error reporting #218

Open kamil-tekiela opened 2 years ago

kamil-tekiela commented 2 years ago

Signed-off-by: Kamil Tekiela tekiela246@gmail.com

Q A
Documentation no
Bugfix yes
BC Break potentially
New Feature no
RFC no
QA no

Description

It seems as if mysqli was not reporting exceptions until now. I have enabled error reporting, which will make sure that every time an error happens an exception is thrown. This follows the same approach as the PDO adapter. I am not sure about abstracting exceptions as it seems PDOException is not abstracted in most places. The background of this change is to bring it in line with the new default mysqli error reporting in PHP 8.1. Normally, to avoid BC we would add mysqli_report(MYSQLI_REPORT_OFF) but in this case that line was missing previously and it seems like the project doesn't care about error handling. Therefore, it's better to enable error reporting for this extension to align it with PDO behaviour.

Regarding the right place. In PDO error reporting is enabled after connection, but in mysqli it makes more sense to do it before.