Как исправить ошибку “Fatal error: Call to a member function fetchAll() on array in” PHP PDO

116
28 июня 2021, 21:00

Решил обновить версию php с 5.3 на 7.0 начал писать код с помощью PDO, во время написания возникла ошибка:

"Fatal error: Call to a member function fetchAll() on array in /home/ecnlua/public_html/sitenew/php/pagination.php on line 12"

Что-то связано с массивом. Если нужно избавится от setResultToArray(), то на что заменить?

<?php
    include_once("db.php");
    function getAllArticles($start, $limit) {
        $db = new Database;
        $result = $db->query("SELECT * FROM `news` ORDER BY `date` DESC LIMIT ".$start.", ".$limit);
        return setResultToArray($result);
    }
    function setResultToArray($result) {
        $array = array();
        while ($row = $result->fetchAll()){
            $array[] = $row;
        }
//      while ($row = mysql_fetch_assoc($result)) $array[] = $row;
        return $array;
    }
    function countArticles() {
        $db = new Database();
        $reslut = $db->query("SELECT COUNT(`id`) FROM `news`");
        $result = mysql_fetch_row($reslut);
        return $result[0];
    }
    function getStart($page, $limit) {
        return $limit * ($page - 1);
    }
    function pagination($page, $limit) {
        // общее кол-во строк в БД
        $count_articles = countArticles();
        // общее количество стр.
        $count_pages = ceil($count_articles / $limit);
        if ($page > $count_pages) $page = $count_pages;
        $prev = $page - 1;
        $next = $page + 1;
        if ($prev < 1) $prev = 1;
        if ($next > $count_pages) $next = $count_pages;
        $pagination = "";
        if ($count_pages > 1) {
            // pagination
            if ($page == 1) {
                $pagination .= "<span>1Первая </span>";
                $pagination .= "<span>1Предыдущая </span>";
            }
            else {
                $pagination .= "<a href='index.php'>2Первая </a>";
                if ($prev == 1) $pagination .= "<a href='index.php'>2Предыдущая </a>";
                else $pagination .= "<a href='index.php?page=".$prev."'>21Предыдущая </a>";
            }
            for ($i = 1; $i <= $count_pages; $i++) {
                if ($i == $page) $pagination .= "<span> ".$i." </span>";
                elseif ($i == 1) $pagination .= "<a href='index.php'> ".$i." </a>";
                else $pagination .= "<a href='index.php?page=".$i."'> ".$i." </a>";
            }
            if ($page == $count_pages) {
                $pagination .= "<span> 3Следующая</span>";
                $pagination .= "<span> 3Последняя</span>";
            }
            else {
                $pagination .= "<a href='index.php?page=".$next."'> 4Следующая</a>";
                $pagination .= "<a href='index.php?page=".$count_pages."'> 4Последняя</a>";
            }
        }
        return $pagination;
    }
?>
READ ALSO
guzzle не отправляются асинхронные запросы

guzzle не отправляются асинхронные запросы

Не отправляется асинхронный запросСинхронные отправляются

122
Выбор подхода для написания системы

Выбор подхода для написания системы

Есть ERP система, парусКрутится на oracle базе

99
Создание рпг игры на php

Создание рпг игры на php

Создаю текстовую RPG игру на PHP

103