$sql = "SELECT date, author, content FROM guestbook ORDER BY date DESC LIMIT 5";
$result = $db->query($sql);
while($row = $result->fetch_assoc()) {
echo "Geschrieben von: ".$row['author']." am ".$row['date'];
echo $row['content'];
}
die einträge aus meiner DB aus, leider sagt er mit dabei:
Fatal error: Call to a member function fetch_assoc() on a non-object in *** on line 58
$result ist ein array. Ich würde bei Datenbanken aber mit PDO arbeiten. Die Syntacx ist etwas anders, aber es bietet dir einige vorteile. Prepared Statements und schutz vor Sql-Injections. Wikipedia erklärt das recht gut.
Dazu vielleicht ein kleines Beispiel:
Nehmen wir mal an jemand speichert die Loginpasswörte in seine Datenbank in eine Tabelle ‘admin’ und fragt sie folgendermaßen ab:
Jetzt kann ich in das Passwortfeld folgendes eingeben.
Das Statement sieht dann so aus:
Als ergebnis bekomme ich dann den Datensatz des ersten Users zurück. Je nachdem wie das Script geschrieben ist kann dies schin reichen um mich erfolgreich eingeloggt zu haben.
Sicherlich schreibt ihr in eure Scripte noch den ein oder anderen Mechanismus um so etwas zu umgehen, aber mit PDO braucht man sich um soche Dinge keine gedanken zu machen.
Dazu kann es wohl gerade in Schleifen einen Performancevorteil bringen, da das Statement wohl im Speicher der Datenbank vorgemerkt wird und lediglich die Parameter an das Statement gebunden werden.