Fehler: fetch_all() gibt nur eine Fehlermeldung aus

Disasterp1ece

Grünschnabel
Guten Abend,

Arbeite im Moment an einem Nachrichtensystem.
In dem Skript, in dem ich die Nachrichten anzeigen lassen will, würde ich gerne folgendes ausführen:

Code:
    $select_messages = "SELECT * FROM messages WHERE targetid = '".$_SESSION['id']."'";
    $fetch_messages  = $con->query($select_messages)->fetch_all();

Es sollen alle Spalten aus der Datenbank genommen werden, in denen die targetid (Empfänger) = der ID des Benutzers ist.

Hab es zuerst mit fetch_assoc() versucht, aber es sind ja mehrere Spalten und daher hab ich auf php.net nach einer anderen Funktion gesucht.
fetch_all() klang eigentlich recht zutreffend, aber leider krieg ich nur den Fehler:
Fatal error: Call to undefined method mysqli_result::fetch_all()

Im Kommentar von fetch_all() steht:
If you are getting the following error:

Fatal error: Call to undefined method mysqli_result::fetch_all()

Be sure you didn't miss this line after the procedural call about it requiring mysqlnd

Dies sagt mir jedoch nicht viel.


Falls jemand eine Lösung bzw. einen Alternativweg hat, würde ich mich sehr darüber freuen, ihn zu hören :-)

mfg
Disasterpiece
 
Danke für die Antwort zodiacxp :)

Also brauch ich diese PDO-Erweiterung um die Methode auszuführen, da er die Methode sonst nicht kennt?

Das Problem ist nur, dass ich meine Seite über einen Webspace laufen lasse. Ich hab gerade mal geguckt, ob man da was in phpmyadmin einstellen kann, aber habe nichts gefunden. Ist das überhaupt möglich?

Server Version: 5.0.32-Debian_7etch8-log

gibt es denn eine Atlernative?

mfg
Disasterpiece

edit: möchte mich für mein Dasein als Dilettant entschuldigen, bin nur ein Hobbyprogrammierer :)
 
Zuletzt bearbeitet:
Hallo @Disasterp1ece

Was spricht gegen mysql_fetch_array ? :)

PHP:
$query = mysql_query("SELECT * FROM messages WHERE targetid = '".$_SESSION['id']."'") or die(mysql_error()); // das mysql_error ist um Fehler schneller zu finden
while($row = mysql_fetch_array($query))
 {

    echo $row['tabellenspalte'];
   //. ...
 }


Grüße Simon
 
Also brauch ich diese PDO-Erweiterung um die Methode auszuführen, da er die Methode sonst nicht kennt?

Im gewissen Sinne "Ja".
Aber das sind zwei paar Schuhe PDO und mysqli.
Das ist als ob du im Moment ein Navi hast das dir von einer Stadt (sql-Tabelle) die Hotels (Zeilen) nur einzeln anzeigt. Wenn du jetz noch PDO holst hast ein zweites Navi, dass zwar alles auf einmal anzeigt aber auch eingerichtet werden will usw.

Also entweder - oder.
Es spricht wirklich nichts dagegen sich die Daten einzeln zukommen zu lassen und in einer Schleife dann in ein Array abzulegen wenn du wirklich alles auf einmal haben willst.
Das ist aber dann eine große Datenmenge.

Es wird eh aufs einzelne hinauslaufen (in etwa die Schleife von SimonErich), da du die Daten ja als News anzeigen möchtest und dafür müssen die ja noch einzeln formatiert werden ;)
 
Gegen mysql_fetch_array spricht eigentlich nichts. Hab mich aber erst vor Kurzem OOP angeschaut und meine Skripte auf mysqli umgestellt.

Bau auch mit mysqli die Verbindung zur Datenbank auf etc.

Vielen Dank für die Antworten.
Ich bastel einfach noch etwas weiter rum.

mfg
Disasterpiece
 
Zurück