PHP mysqli get_result()返回false
对语句使用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
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'));
)到函数的开头,它被插入了什么?请提供一个代码片段来显示“临时保存对象修复了我的问题”的含义。什么?请提供一个代码段来显示“临时保存对象修复了我的问题”的含义