【问题标题】:mysqli_fetch_all not working on shared hosting, need alternative [duplicate]mysqli_fetch_all 在共享主机上不起作用,需要替代 [重复]
【发布时间】:2015-02-08 04:33:49
【问题描述】:

通过 XAMPP 在 localhost 上进行开发时,我在代码中使用了 mysqli_fetch_all。但是上传到 godaddy 共享主机后,它就不起作用了。

我在互联网上进行了研究,发现服务器应该使用 MySQLnd 来运行 mysqli_fetch_all。所以我不能在服务器上运行我当前的代码。

我需要此代码的确切替代方案。有什么建议吗?

当前代码:

$result = mysqli_query($con,$query);
$arr = mysqli_fetch_all($result, MYSQLI_ASSOC);

$totalrecords = count($arr);

$json = array('sEcho' => '1', 'iTotalRecords' => $totalrecords, 'iTotalDisplayRecords' => $totalrecords, 'aaData' => $arr);
echo json_encode($json );

【问题讨论】:

    标签: php mysql json mysqli datatables


    【解决方案1】:

    如果您因为没有安装 mysqlnd 而无法使用它,请像通常使用 mysqli_fetch_assoc() 那样获取它

    $arr = array();
    $result = mysqli_query($con,$query);
    $totalrecords = mysqli_num_rows($result);
    while($row = mysqli_fetch_assoc($result)) {
        $arr[] = $row;
    }
    
    $json = array('sEcho' => '1', 'iTotalRecords' => $totalrecords, 'iTotalDisplayRecords' => $totalrecords, 'aaData' => $arr);
    echo json_encode($json);
    

    【讨论】:

    • 就像一个魅力。谢谢!!!
    • @sumit 很高兴这有帮助
    【解决方案2】:

    我的主机也遇到过同样的问题,为了减少代码重构,我认为更好的方法是使用mysqli_fetch_assoc()mysqli_fetch_array()实现类似的功能,返回与mysqli_fetch_all()相同, 喜欢:

    public function mysqli_fetch_all_alt($result) {
        $select = array();
    
        while( $row = mysqli_fetch_assoc($result) ) {
            $select[] = $row;
        }
    
        return $select;
    }
    

    然后在您的项目中执行查找替换。

    【讨论】:

    • 提示:您始终可以使用 function_exists() 将函数定义包装在条件中。它将为您节省项目中的查找替换。
    猜你喜欢
    • 1970-01-01
    • 2017-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多