PHP Schnellstart – PHP und Datenbanken – Teil 3 – Daten aus der Datenbank auslesen
In dieser Lektion lernst du, wie du Daten aus der Datenbank auslesen kannst. Wir kombinieren die bislang vorgestellten Methoden.
Nun kannst Du komplexere Aufrufe durchführen. Die Ausführung von Datenbankanweisungen gelingt Dir über die Methoden exec(), query() und querySingle(). Alle drei machen das gleiche, aber mit feinen Unterschieden:
- exec() führt die übergebene Datenbankanweisung aus und gibt dann den Wert True zurück, wenn die Anweisung erfolgreich ausgeführt werden konnte, ansonsten False. Diese Methode eignet sich für CREATE-, INSERT- und DROP-Anweisungen, bei denen üblicherweise nur das Ergebnis der Anweisung interessant ist.
- query() führt die übergebene Datenbankanweisung aus und gibt ein Datenbankobjekt mit dem Ergebnis zurück. Dieses lässt sich dann weiter auswerten. Diese Methode eignet sich für SELECT-Anweisungen, die mehrzeilige Rückgabewerte liefern, bspw. alle Elemente aus einer Tabelle.
- querySingle() ist ähnlich zu query(). Es führt ebenfalls die übergebene Datenbankanweisung aus und gibt ein Datenbankobjekt zurück. Der Inhalt des Objekts besteht jedoch lediglich aus der ersten Zeile des Ergebnisses oder dem Wert Null, falls das Ergebnis der Datenbankanweisung leer ist.
querySingle() haben wir bereits benutzt. Nachfolgend kommt die Methode query() zum Einsatz.
Die Inhalt der Tabelle "benutzer" ausgeben
Nach dem Aufbauen der Verbindung führst einen Aufruf mit Hilfe der Methode query() aus. Als Datenbankkommando übergeben wir SELECT name,email FROM benutzer, um die beiden Felder name und email aus der Tabelle "benutzer" auszulesen. Das Ergebnis ist ein SQLite-Objekt, welches in der Variable $resultat verfügbar ist.
Mit Hilfe einer while-Schleife und der PHP-Funktion fetchArray() liest Du aus diesem die Ergebnisse zeilenweise aus. Die while-Schleife wird so lange durchlaufen, wie die Funktion fetchArray() einen Datensatz aus dem SQLite-Objekt liefert. Pro gelieferter Zeile erhältst Du wiederum ein Array, welches die beiden Felder "name" und "email" beinhaltet.
$dbhandle = new SQLite3('contact.sqlite');
$resultat = $dbhandle->query("SELECT name,email FROM benutzer");
while ($eintrag = $resultat->fetchArray()) {
echo "
";
$name = $eintrag['name'];
$email = $eintrag['email'];
echo 'Name: ' . $name . ' E-mail: ' . $email;
echo "
";
}
Pro Eintrag erzeugt obiger Code einen Absatz und gibt den Namen und die dazugehörige Emailadresse aus. Rufst Du das Skript in einem Webbrowser aus, erhälst Du ein Ergebnis ähnlich wie unten.
Abb. 2: Gespeicherte Inhalte ausgeben
Datei: select.png
Die Verbindung zur Datenbank schließen
Saubere Programmierung heißt, daß du am Ende die Verbindung zur Datenbank auch wieder schließt. Das erfolgt in Schritt 4 mit Hilfe der Methode close() und der zu Beginn erhaltenen Datenbankkennung:
$dbhandle->close();
Damit ist das Skript zum Lesen und Ausgeben des Datenbestands soweit komplett. Möchtest Du einen weiteren Datensatz zur Tabelle "benutzer" hinzufügen, gelingt Dir das wie folgt:
$sqlCommand = "INSERT INTO benutzer(name, email) VALUES('H. Acker', 'g.heim@geheim.com')";
$dbhandle->exec($sqlCommand);
Mit Hilfe der INSERT-Anweisung wird der Benutzer "H. Acker" und dessen Emailadresse "g.heim@geheim.com" eingefügt. Bitte beachte, dass SQLite den neuen Datensatz ans Ende der Liste einträgt.
Fazit
Das waren die wichtigsten Grundlagen zu PHP mit SQLite. Wie Du gesehen hast, ist die Verbindung beider Technologien recht unkompliziert. Die einzelnen Schritte folgen einem Ablauf, der überschaubar ist.
Lesen und Ergänzen der Inhalte stellen die ersten Schritte da. SQLite unterstützt mehr -- so zum Beispiel das Aktualisieren eines Datensatzes mittels UPDATE und das Löschen von Inhalten mittels DELETE.