Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP mysqli get_result()返回false_Php_Mysqli_Return Value - Fatal编程技术网

PHP mysqli get_result()返回false

PHP mysqli get_result()返回false,php,mysqli,return-value,Php,Mysqli,Return Value,对语句使用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

对语句使用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) } 
我的DB类如下所示:

<?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()中看到的,results()方法返回false,因为您得到了一个错误。“MySQL服务器已离开”错误通常发生在您在查询过程中失去连接时

您可以在

Ello上阅读有关此错误的更多信息,伙计

正如您在var_dump()中看到的,results()方法返回false,因为您得到了一个错误。“MySQL服务器已离开”错误通常发生在您在查询过程中失去连接时


您可以在

上阅读有关此错误的更多信息。好的,我解决了问题。 不知何故,在准备/执行时,我没有处理同一个mysqli对象


暂时保存对象修复了我的问题。

好的,我解决了问题。 不知何故,在准备/执行时,我没有处理同一个mysqli对象


暂时保存对象修复了我的问题。

而不是
回显“读取一个条目”写入
$ret[]=$row
然后调用函数并将其值赋给一个变量,然后打印该变量并检查会发生什么?我已经得到了
致命错误:调用file.php第15行的boolean上的成员函数fetch_assoc()
这是while循环在静态方法中所处的行,使用
self::$connection
访问静态属性。您的“getConnection()”方法使用每个调用创建新连接,而不是
echo“read one entry”写入
$ret[]=$row
然后调用函数并将其值赋给一个变量,然后打印该变量并检查会发生什么?我已经得到了
致命错误:调用file.php第15行的boolean上的成员函数fetch_assoc()
这是while循环在静态方法中所处的行,使用
self::$connection
访问静态属性。您的“getConnection()”方法会为每个Call创建新的连接,我也曾想过类似的事情,但后来我添加了一个小的insert语句(
DB::getConnection()->查询(“插入到功能(游戏、标识符、功能)值('game'、'abc'、'abc'));
)在函数的开头,它被很好地插入了。我也考虑过类似的事情,但后来我添加了一个小的insert语句(
DB::getConnection()->查询(“插入到功能(游戏、标识符、功能)值('game'、'abc'、'abc'));
)到函数的开头,它被插入了什么?请提供一个代码片段来显示“临时保存对象修复了我的问题”的含义。什么?请提供一个代码段来显示“临时保存对象修复了我的问题”的含义