Wenn get_result() für eine Anweisung verwendet wird, wird nur false anstelle eines gültigen Objekts zurückgegeben.PHP mysqli get_result() gibt false zurück
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;
}
Die Treffer Var_dump gibt diese Nachricht, die ich keine Informationen Form extrahieren:
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) }
sieht My DB Klasse wie folgt:
<?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;
}
}
Jede Hilfe diese Funktion zu erhalten würde geschätzt werden
anstelle von 'echo' einen Eintrag lesen ";' schreiben '$ ret [] = $ row;' und dann Funktion aufrufen und deren Wert einer Variablen zuweisen und dann diese Variable drucken und prüfen, was kommt? –
Ich bekomme bereits 'Fatal error: Aufruf an eine Member-Funktion fetch_assoc() on boolean in Datei.php in Zeile 15 'ist die Zeile, in der die while-Schleife sitzt – Sabbertran
Innerhalb einer statischen Methode, verwenden Sie' self :: $ connection 'um auf die statische Eigenschaft zuzugreifen. Ihre "getConnection()" Methode erstellt neue Verbindungen mit jedem Aufruf –