Merge pull request #9645 from MrPetovan/bug/fatal-errors
authorTobias Diekershoff <tobias.diekershoff@gmx.net>
Thu, 10 Dec 2020 13:05:03 +0000 (14:05 +0100)
committerGitHub <noreply@github.com>
Thu, 10 Dec 2020 13:05:03 +0000 (14:05 +0100)
Normalize return value in Database->fetch

src/Database/Database.php
src/Model/Item.php

index 641ebd3..0d02c4a 100644 (file)
@@ -910,13 +910,12 @@ class Database
        /**
         * Fetch a single row
         *
-        * @param mixed $stmt statement object
+        * @param PDOStatement|mysqli_stmt $stmt statement object
         *
-        * @return array current row
+        * @return array|false current row
         */
        public function fetch($stmt)
        {
-
                $stamp1 = microtime(true);
 
                $columns = [];
@@ -934,7 +933,7 @@ class Database
                                break;
                        case self::MYSQLI:
                                if (get_class($stmt) == 'mysqli_result') {
-                                       $columns = $stmt->fetch_assoc();
+                                       $columns = $stmt->fetch_assoc() ?? false;
                                        break;
                                }
 
index 15ea69e..c67399b 100644 (file)
@@ -223,13 +223,14 @@ class Item
         * Fetch a single item row
         *
         * @param mixed $stmt statement object
-        * @return array current row
+        * @return array|false current row or false
+        * @throws \Exception
         */
        public static function fetch($stmt)
        {
                $row = DBA::fetch($stmt);
 
-               if (is_bool($row)) {
+               if (!is_array($row)) {
                        return $row;
                }