====== 9.8) SQL-Datenbankzugriff mit PHP====== Um auf eine MySQL-Datenbank zuzugreifen, muss zuerst eine Verbindung (**//mysqli_connect//**) hergestellt werden. Dazu ist der **Host**, auf dem der MySQL-Server läuft, der **Benutzername** sowie das **Kennwort** anzugeben. Anschließend muss noch eine Datenbank auf dem DBS ausgewählt werden (**//mysqli_select_db//**). Danach können die SQL-Anweisungen folgen (**//mysqli_query//**). Im Falle einer SQL-Abfrage liefert diese Funktion alle Tupel zurück, welche der Reihe nach mit **//mysqli_fetch_array//** abgearbeitet werden können. \\ \\ Im Folgenden soll als Beispiel ein Gästebuch realisiert werden. Dazu wurde eine Tabelle **meldung** erstellt, welche die einzelnen Nachrichten aufnehmen soll: CREATE TABLE meldung ( id INT NOT NULL auto_increment, datum DATETIME DEFAULT NULL, name VARCHAR(200) DEFAULT NULL, eintrag TEXT, CONSTRAINT PK_id PRIMARY KEY (id) ); Zusätzlich zu den Daten **datum, name** und **eintrag** wurde ein Attribut **id** eingeführt, welches als Schlüssel dient. \\ \\ Das folgende Skript **show.php** liest alle Einträge der Datenbank aus und gibt sie in Tabellenform aus: Alle Meldungen \n"; echo "Datum: ".$row["datum"]." \n"; echo "Name:" .$row ["name"]. " \n"; echo "Eintrag: \n"; echo "".nl2br(htmlentities($row["eintrag"]))." \n"; echo "\n
\n"; } ?>
neuen Eintrag hinzufügen
{{:inf:inf8bi_201819:2:pasted:20181115-191941.png}} Um neue Einträge für das Gästebuch zu erstellen, existiert ein weiteres Skript insert.php: Neuer Eintrag in unser Gästebuch die Werte müssen überprüft werden //und bei Gültigkeit in die DB eingefügt werden $DatenOK=1; //wir gehen prinzipiell von der Gültigkeit der Daten aus $error=""; //es gab noch keine Fehlermeldung bis hier hier if($name=="") //Kein Name eingegeben { $DatenOK=0; $error.="Es muss ein Name eingegeben werden!
\n"; } if($eintrag=="") //Kein Kommentar eingegeben { $DatenOK=0; $error.="Ein Eintrag ohne Kommentar macht nicht viel Sinn!
\n"; } if($DatenOK) //Daten OK -> also in DB eintragen { $timestamp=date("Y-m-d h:i:s", time()); mysqli_query($con,"INSERT INTO eintraege (datum, name, eintrag) VALUES (\"$timestamp\", \"$name\", \"$eintrag\" );"); echo mysqli_error($con); echo "Daten wurden eingetragen."; } else { echo "

Fehler:

\n"; //Fehlermeldung echo $error; } } //Formular ?>
Name:
Text:

Alle Einträge anzeigen
{{:inf:inf8bi_201819:2:pasted:20181115-191809.png}}