Google weiß alles: mysql_* vs. mysqli_*

Beitrag lesen

Naja...

$mysqli = new mysqli($dbserver,$dbuser,$dbpass,$dbname);
$mysqli->query($q);
while ($row = $mysqli->fetch_assoc()) {
}

muss falsch sein:

Fatal error: Call to undefined method mysqli::fetch_assoc() in

denn Du musst zwischen dem Verbingungsobjekt und dem mit dem Resultat der Abfrage unterscheiden. Das hast Du nicht getan. Genauer gesagt hast Du es nicht mal gespeichert, sondern in den Müll gekippt. Dein Verbindungsobjekt hat also schon per Definition nicht die für das Resultat-Objekt gültige Methode "fetch_assoc".

$mysqli = new mysqli($dbserver,$dbuser,$dbpass,$dbname);
$result = $mysqli->query($q);
while ( $row = $result->fetch_assoc() ) {
   #...
}

Ich sehe auch keine Prüfungen auf Fehler. Dabei erklärt das PHP-Handbuch diese und hat wunderschöne Beispiele.