需要替代mysqli_fetch_all

时间:2014-09-01 11:53:00

标签: php mysqli

我有一个php-mysqli代码可以找到我的本地服务器,但在我的服务器上使用它我得到了

Fatal error: Call to undefined function mysqli_fetch_all() in /home3/t561257/public_html/admin/database.php on line 49

以下部分代码是问题所在。

 function fetch_rows($queryname) {
        $result = $this->connection->query($queryname);
        $row = mysqli_fetch_all($result, MYSQLI_ASSOC);
        return $row;        
    }

我以下列方式使用它

 $next_four_rows = $db_link->fetch_rows($query_four_latest);

$ db_link是具有fetch_rows方法的类。

我在我的本地服务器上使用php 5.5,因为服务器正在运行5.4.27我对如何解决它真的很无能

1 个答案:

答案 0 :(得分:13)

如果您的PHP安装was not compiled with mysqlnd导致mysqli_fetch_all不可用,您有两种选择:

  1. Recompile PHP with mysqlnd或者可能从Linux发行版的软件包存储库中安装另一个特定的软件包。
  2. 使用简单的循环:

    $data = [];
    while ($row = $result->fetch_assoc()) {
        $data[] = $row;
    }
    
  3. 您甚至可以创建兼容性回退,而无需更改所有代码:

    if (!function_exists('mysqli_fetch_all')) {
        function mysqli_fetch_all(mysqli_result $result) {
            $data = [];
            while ($data[] = $result->fetch_assoc()) {}
            return $data;
        }
    }