SQLite - PHP: Ein Anfängerbuch

Hallo da, zukünftiger Codingsuperstar! Willkommen auf unserer aufregenden Reise in die Welt von SQLite und PHP. Ich freue mich sehr, dein Guide zu sein, während wir dieses faszinierende Thema gemeinsam erkunden. Mach dir keine Sorgen, wenn du neu im Programmieren bist – wir gehen schrittweise vor, und bevor du es merkst, wirst du Datenbanken wie ein Profi handhaben!

SQLite - PHP

Installation

Bevor wir in die aufregende Welt von SQLite und PHP eintauchen, müssen wir sicherstellen, dass wir alle notwendigen Tools haben. Das ist wie das Vorbereiten für ein Kochabenteuer – du brauchst deine Zutaten und Küchenutensilien bereit!

Zuerst überprüfen wir, ob PHP auf deinem Computer installiert ist. Öffne dein Kommandozeilenfenster oder Terminal und gebe ein:

php -v

Wenn du Versionsinformationen siehst, großartig! Du bist bereit. Wenn nicht, keine Sorge – gehe auf die offizielle PHP-Website (php.net) und folge ihren Installationsanweisungen.

Als nächstes müssen wir SQLite in PHP aktivieren. Normalerweise ist es standardmäßig aktiviert, aber lassen wir uns sicher sein. Öffne deine php.ini Datei (du kannst ihren Ort herausfinden, indem du php --ini ausführst) und suche nach dieser Zeile:

extension=sqlite3

Wenn sie ausgegraut ist (hat ein Semikolon am Anfang), entferne das Semikolon, um sie zu aktivieren.

Glückwunsch! Du hast den ersten Schritt unserer Reise abgeschlossen. Jetzt geht's zum spannenden Teil – der tatsächlichen Verwendung von SQLite mit PHP!

PHP-Schnittstellen-APIs

PHP bietet eine Reihe von Funktionen zur Interaktion mit SQLite-Datenbanken. Stell dir diese als deine Werkzeugkiste vor – jede Funktion ist ein anderes Werkzeug, das dir hilft, mit deiner Datenbank zu arbeiten. Hier sind einige der wichtigsten:

Funktion Beschreibung
sqlite3::open() Öffnet eine SQLite-Datenbank
sqlite3::exec() Führt eine SQL-Abfrage aus
sqlite3::query() Führt eine SQL-Abfrage aus und gibt einen Ergebnismengen zurück
sqlite3::close() Schließt die Datenbankverbindung

Mach dir keine Sorgen, wenn diese jetzt verwirrend erscheinen – wir werden sehen, wie man jedes dieser Werkzeuge im Laufe der Zeit verwendet!

Verbindung zur Datenbank herstellen

Nun, da wir unsere Werkzeugkiste bereit haben, lassen's uns mit der Verbindung zu einer Datenbank beginnen. Das ist wie das Öffnen der Tür zu deinem Datenlagerraum. Hier ist, wie man es macht:

<?php
$db = new SQLite3('myDatabase.db');
?>

Diese einfache Zeile macht viel! Lassen's uns sie aufschlüsseln:

  • Wir erstellen ein neues SQLite3-Objekt und speichern es in der Variable $db.
  • 'myDatabase.db' ist der Name unserer Datenbankdatei. Wenn sie nicht existiert, wird SQLite sie für uns erstellen.

Denke daran, deine Datenbankoperationen immer in try-catch-Blöcke zu包裹, um Fehler elegant zu behandeln. Hier ist eine robustere Version:

<?php
try {
$db = new SQLite3('myDatabase.db');
echo "Erfolgreich mit der Datenbank verbunden!";
} catch (Exception $e) {
echo "Konnte nicht mit der Datenbank verbinden: " . $e->getMessage();
}
?>

Tabelle erstellen

Jetzt, da wir verbunden sind, lassen's uns eine Tabelle erstellen, um Daten zu speichern. Stell dir vor, du betreibst eine kleine Bibliothek und möchtest deine Bücher nachverfolgen. Hier ist, wie du eine 'books'-Tabelle erstellen könntest:

<?php
$db = new SQLite3('library.db');

$query = "CREATE TABLE IF NOT EXISTS books (
id INTEGER PRIMARY KEY AUTOINCREMENT,
title TEXT NOT NULL,
author TEXT NOT NULL,
published_year INTEGER
)";

if ($db->exec($query)) {
echo "Tabelle erfolgreich erstellt!";
} else {
echo "Fehler beim Erstellen der Tabelle: " . $db->lastErrorMsg();
}
?>

Lassen's uns das aufschlüsseln:

  • Wir verwenden CREATE TABLE IF NOT EXISTS, um Fehler zu vermeiden, wenn die Tabelle bereits existiert.
  • Wir definieren vier Spalten: id, title, author und published_year.
  • Die id ist unser Primärschlüssel und wird automatisch erhöht.
  • Wir verwenden $db->exec() um unsere SQL-Abfrage auszuführen.

Einfügen (INSERT)-Operation

Großartig! Wir haben eine Tabelle. Jetzt fügen wir einige Bücher unserer Bibliothek hinzu:

<?php
$db = new SQLite3('library.db');

$title = "Der Große Gatsby";
$author = "F. Scott Fitzgerald";
$year = 1925;

$query = "INSERT INTO books (title, author, published_year)
VALUES (:title, :author, :year)";

$stmt = $db->prepare($query);
$stmt->bindValue(':title', $title, SQLITE3_TEXT);
$stmt->bindValue(':author', $author, SQLITE3_TEXT);
$stmt->bindValue(':year', $year, SQLITE3_INTEGER);

if ($stmt->execute()) {
echo "Buch erfolgreich hinzugefügt!";
} else {
echo "Fehler beim Hinzufügen des Buches: " . $db->lastErrorMsg();
}
?>

Dies mag kompliziert aussehen, aber es ist eigentlich quite einfach:

  • Wir verwenden vorbereitete Anweisungen (:title, :author, :year), um SQL-Injection-Angriffe zu verhindern.
  • Wir vorbereiten unsere Abfrage, dann bindeWerte an jede Platzhalter.
  • Schließlich führen wir den Befehl aus.

Abfrage (SELECT)-Operation

Jetzt holen wir unsere Bücher aus der Datenbank:

<?php
$db = new SQLite3('library.db');

$query = "SELECT * FROM books";
$result = $db->query($query);

while ($row = $result->fetchArray(SQLITE3_ASSOC)) {
echo "Titel: " . $row['title'] . "<br>";
echo "Autor: " . $row['author'] . "<br>";
echo "Veröffentlicht: " . $row['published_year'] . "<br><br>";
}
?>

Hier ist, was passiert:

  • Wir verwenden $db->query() um unsere SELECT-Abfrage auszuführen.
  • Wir verwenden eine while-Schleife mit fetchArray() um jede Zeile abzurufen.
  • SQLITE3_ASSOC weist fetchArray() an, ein assoziatives Array zurückzugeben.

Aktualisieren (UPDATE)-Operation

Ups! Wir haben einen Fehler gemacht. "Der Große Gatsby" wurde tatsächlich 1925 veröffentlicht, nicht 1924. Lassen's uns unsere Datenbank aktualisieren:

<?php
$db = new SQLite3('library.db');

$query = "UPDATE books SET published_year = :year WHERE title = :title";

$stmt = $db->prepare($query);
$stmt->bindValue(':year', 1925, SQLITE3_INTEGER);
$stmt->bindValue(':title', 'Der Große Gatsby', SQLITE3_TEXT);

if ($stmt->execute()) {
echo "Buch erfolgreich aktualisiert!";
} else {
echo "Fehler beim Aktualisieren des Buches: " . $db->lastErrorMsg();
}
?>

Dies ist ähnlich zu unserer Einfügen-Operation, aber wir verwenden den UPDATE SQL-Befehl anstelle dessen.

Löschen (DELETE)-Operation

Schließlich lernen wir, wie man ein Buch aus unserer Datenbank entfernt:

<?php
$db = new SQLite3('library.db');

$query = "DELETE FROM books WHERE title = :title";

$stmt = $db->prepare($query);
$stmt->bindValue(':title', 'Der Große Gatsby', SQLITE3_TEXT);

if ($stmt->execute()) {
echo "Buch erfolgreich gelöscht!";
} else {
echo "Fehler beim Löschen des Buches: " . $db->lastErrorMsg();
}
?>

Und das war's! Wir haben alle grundlegenden Operationen der Arbeit mit SQLite in PHP abgedeckt. Denke daran, Übung macht den Meister. Versuche, deine eigenen Datenbankprojekte zu erstellen, vielleicht eine To-Do-Liste oder ein Kochbuch. Je mehr du mit diesen Konzepten spielst, desto wohler wirst du werden.

Ich hoffe, du hast diese Reise so sehr genossen wie ich. Weiter codieren, weiter lernen und vor allem Spaß haben! Bis zum nächsten Mal, fröhliches Datenbanken!

Credits: Image by storyset