Correct dba::close() To Match dba::p()

This commit is contained in:
miqrogroove 2018-06-21 17:27:12 -04:00 committed by GitHub
parent 4b0cf8d60f
commit c600ccad5c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 13 additions and 3 deletions

View File

@ -349,7 +349,7 @@ class dba {
* For all regular queries please use dba::select or dba::exists * For all regular queries please use dba::select or dba::exists
* *
* @param string $sql SQL statement * @param string $sql SQL statement
* @return bool|object statement object * @return bool|object statement object or result object
*/ */
public static function p($sql) { public static function p($sql) {
$a = get_app(); $a = get_app();
@ -1404,8 +1404,18 @@ class dba {
$ret = $stmt->closeCursor(); $ret = $stmt->closeCursor();
break; break;
case 'mysqli': case 'mysqli':
$stmt->free_result(); // MySQLi offers both a mysqli_stmt and a mysqli_result class.
$ret = $stmt->close(); // We should be careful not to assume the object type of $stmt
// because dba::p() has been able to return both types.
if ($stmt instanceof mysqli_stmt) {
$stmt->free_result();
$ret = $stmt->close();
} elseif ($stmt instanceof mysqli_result) {
$stmt->free();
$ret = true;
} else {
$ret = false;
}
break; break;
} }