Thomas Bruederli
2013-03-13 713259002f1acf1342a6aec90fdd30fbb87a0201
Re-implement rcube_db::num_rows() to ensure backwards compatibility
1 files modified
23 ■■■■■ changed files
program/lib/Roundcube/rcube_db.php 23 ●●●●● patch | view | raw | blame | history
program/lib/Roundcube/rcube_db.php
@@ -439,6 +439,29 @@
    }
    /**
     * Get number of rows for a SQL query
     * If no query handle is specified, the last query will be taken as reference
     *
     * @param mixed $result Optional query handle
     * @return mixed   Number of rows or false on failure
     */
    public function num_rows($result = null)
    {
        if ($result || ($result === null && ($result = $this->last_result))) {
            // repeat query with SELECT COUNT(*) ...
            if (preg_match('/^SELECT\s+(?:ALL\s+|DISTINCT\s+)?(?:.*?)\s+FROM\s+(.*)$/i', $result->queryString, $m)) {
                $query = $this->dbh->query('SELECT COUNT(*) FROM ' . $m[1], PDO::FETCH_NUM);
                return $query ? intval($query->fetchColumn(0)) : false;
            }
            else {
                return count($result->fetchAll());
            }
        }
        return false;
    }
    /**
     * Get last inserted record ID
     *
     * @param string $table Table name (to find the incremented sequence)