Doc #75448 [Opn->Asn]: In case of failure, mysqli::prepare() returns NULL instead of FALSE

From: Date: Mon, 30 Oct 2017 04:58:38 +0000
Subject: Doc #75448 [Opn->Asn]: In case of failure, mysqli::prepare() returns NULL instead of FALSE
References: 1  Groups: php.doc.bugs 
Request: Send a blank email to doc-bugs+get-15200@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=75448&edit=1 ID: 75448 Updated by: kalle@php.net Reported by: morozov at tut dot by Summary: In case of failure, mysqli::prepare() returns NULL instead of FALSE -Status: Open +Status: Assigned Type: Documentation Problem Package: MySQLi related Operating System: Linux PHP Version: 7.1.11 -Assigned To: +Assigned To: johannes Block user comment: N Private report: N New Comment: Hi Yes its a bug in the documentation, because the mysqli functionality has always been like this. Your PR changes every place where the check is performed to return false, while I understand that its easier to just have one common fault value to check, and I do agree it makes sense, it does introduce a minor BC break, while still minor, I'm still more reluctant to fix the docs. @johannes can you please come with some input on this from a mysql standpoint? Previous Comments: ------------------------------------------------------------------------ [2017-10-29 19:25:29] morozov at tut dot by It may be a common thing but it's still a bug. As far as I understand the design, all mysqli_* functions should return FALSE on failure, and a user can call mysqli_error() and friends to get the error details. What's the point of returning FALSE in some cases but NULL in others? ------------------------------------------------------------------------ [2017-10-29 08:29:17] kalle@php.net I think this is a common thing in the mysqli extension to simply return null if the "active connection" check fails, so instead the docs should be updated to reflect thi ------------------------------------------------------------------------ [2017-10-28 03:05:15] morozov at tut dot by Description: ------------ According to http://php.net/mysqli_prepare, mysqli_prepare() returns a statement object or FALSE if an error occurred. Under certain circumstances, it also returns NULL which makes error handling harder. Test script: --------------- <?php $conn = mysqli_connect('localhost', 'root', ''); $conn->close(); $stmt = $conn->prepare('SELECT * FROM users'); var_dump($stmt); Expected result: ---------------- The value of $stmt is FALSE. Actual result: -------------- The value of $stmt is NULL. ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=75448&edit=1

« previous php.doc.bugs (#15200) next »