繁体   English   中英

PHP mysqli get_result()返回false

[英]PHP mysqli get_result() returns false

在语句上使用get_result()时,它仅返回false而不是有效对象。

function getGames() {
    $ret = array();
    $stmt = DB::getConnection()->prepare("SELECT * FROM games ORDER BY position DESC");
    $stmt->execute();
    var_dump($stmt);
    $result = $stmt->get_result();
    while ($row = $result->fetch_assoc()) {
        echo "read one entry";
    }
    return $ret;
}

列出的var_dump返回此消息,我无法提取任何信息形式:

object(mysqli_stmt)#3 (10) { ["affected_rows"]=> int(-1) ["insert_id"]=> int(0) ["num_rows"]=> int(0) ["param_count"]=> int(0) ["field_count"]=> int(5) ["errno"]=> int(2006) ["error"]=> string(26) "MySQL server has gone away" ["error_list"]=> array(1) { [0]=> array(3) { ["errno"]=> int(2006) ["sqlstate"]=> string(5) "HY000" ["error"]=> string(26) "MySQL server has gone away" } } ["sqlstate"]=> string(5) "HY000" ["id"]=> int(1) } 

我的数据库类如下所示:

<?php
class DB {
    private static $connection;

    static function getConnection() {
        if (!isset($connection) || $connection->ping()) {
            $connection = new mysqli("localhost", "user", "pw", "db");
            $connection->query("SET NAMES 'utf8'");
        }
        return $connection;
    }
}

任何帮助使这项工作,将不胜感激

埃洛,队友。

正如您在var_dump()中看到的那样,result()方法返回false,因为您遇到了错误。 当您在查询过程中失去连接时,通常会发生“ MySQL服务器已消失”错误。

您可以在MySql网站上阅读有关此错误的更多信息

好吧,我知道了问题所在。 在准备/执行时,我不知何故不在同一个mysqli对象上工作。

临时保存对象解决了我的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM