при использовании get_result() в инструкции, он возвращает только false вместо действительного объекта.PHP mysqli 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;
}
}
Любая помощь, чтобы получить эту работу будет оцениваться
вместо 'echo 'читать одну запись';' писать '$ ret [] = $ row;' а затем вызывать функцию и назначать ее значение переменной, а затем печатать эту переменную и проверять, что происходит? –
Я уже получаю 'Неустранимая ошибка: вызовите функцию-член fetch_assoc() в boolean в файле.php в строке 15', которая является строкой, в которой находится цикл while – Sabbertran
В статическом методе используйте' self :: $ connection 'для доступа к статическому свойству. Ваш метод getConnection() создает новые соединения при каждом вызове –