MySQLi Daten speichern per PHP

Neue Datensätze anlegen

Der nächste logische Schritt nach dem Anlegen der Datenbank und ihrer Datentabellen ist das Füllen der Datentabellen. Es kann dies eine Liste von insert-Befehlen sein, die man aufgrund eines Serverwechsels direkt in phpMyAdmin als Import übertragt, aber unsere Situation soll eine andere sein.

Um den Zusammenhang zwischen MySQLi und PHP besser zu verstehen, gehen wir davon aus, dass ein Gästebuch mit einer Datenbank verbunden ist. Hat jemand sich in das Gästebuch eingetragen, dann erhalten wir per Skript und POST-Parameter diese Inhalte, die wir auslesen müssen, um sie dann in der Datenbank zu speichern.

Mit insert Datensätze in die Datenbank speichern

Die Grundlage einer solchen Handlung besteht darin, dass jemand am Beispiel des Gästebuches einen neuen Eintrag geschrieben hat und diesen auch abschickt. Daraufhin muss man die Informationen mit PHP auslesen, wofür die globale Variable _POST zuständig ist und man weiß, was eingetragen wurde. Nur die Datenbank mit ihrer zuständigen Tabelle weiß es noch nicht. Das gilt es jetzt mit dem insert-Befehl zu ändern.

// Daten des Besuchers in Variablen speichern
$name = $_POST["name"];
$text = $_POST["text"];
$url = $_POST["url"];

// kurze Variante beim Speichern
mysqli_query($mysqli,"insert into gaestebuch values('','$name', '$text', '$url')");

// sichere Variante
$speichern = "insert into gaestebuch values('','$name', '$text', '$url')";
if(!($res_speichern = $mysqli->query($speichern))) { echo mysqli_error($mysqli);exit; }

Mit $name, $text und $url haben wir über $_POST erhoben, was in das Gästebuch geschrieben wurde. Diese Daten müssen nun in die zuständige Datenbank und der Tabelle "gaestebuch" eingetragen ergo gespeichert werden. Vorweggenommen ist die schon gezeigte Technik, mit $mysqli ein Objekt für die Datenbankverbindung zu nutzen. Der Befehl in MySQLi ist insert basierend auf dem SQL-Befehlssatz und in PHP nutzt man mysqli_query für die Kommunikation mit der Datenbank.

Jetzt hat man zwei Möglichkeiten: die direkte ist, dass man über mysqli_query und $mysqli den insert-Befehl nutzt und die vier Felder der Tabelle mit einem neuen Datensatz bestückt. Das erste Feld bleibt leer (''), weil dies die fortlaufende Nummer in der Tabelle ist, die anderen Felder sind durch Variablen mit dem Inhalt bestückt. Damit wird die Sache abgeschlossen und die Datentabelle gaestebuch hat einen neuen Eintrag, den man dann auch gleich im Gästebuch darstellen kann.

In der zweiten Variante ist ähnlich, geht aber einen sichereren Weg. Es kann nämlich auch etwas schief gehen und deshalb macht man eine Abfrage. Statt mysqli_query direkt zu nutzen, wird mit $speichern der Befehl für die Datentabelle definiert und danach abgefragt, ob die Speicherung geklappt hat. Falls ja, ist das die gleiche Situation wie bei der ersten Variante, falls nein, erhält man über mysqli_error eine Fehlermeldung, was nicht gepasst hat.

Speicherung mit PHP in der Praxis

Es gibt noch eine dritte Geschichte, die man hier anbringen sollte und das ist der Stil der Notierung. Wir haben beim direkten Versuch die folgende Schreibweise gewählt:

mysqli_query($mysqli,"insert into gaestebuch values('','$name', '$text', '$url')");

Stattdessen kann man auch diese Schreibweise sich aneignen, die eigentlich bei Profis gefragt ist:

mysqli_query($mysqli,"insert into gaestebuch values('','".$name."', '".$text."', '".$url."')");

Funktionieren werden beide Varianten, die zweite hebt die Variablen als PHP-Werkzeuge hervor, was vor allem bei HTML-Editoren auch farblich erkennbar wird. Damit scheint für den Laien die Lesbarkeit geringer, für den Profis ist die Übersicht stärker gewahrt, weil der Teil von SQL für die Datenbank und der Teil der PHP-Programmierung für die Skripterstellung deutlicher getrennt werden. Es ist daher die Variante mit hervorgehobenen Variablen zu bevorzugen, zumal diese Stilart bei den select-Befehlen klar im Vorteil ist.

Lesen Sie auch

So richtig aus dem Vollen kann man dann schöpfen, wenn man die Programmiersprache PHP mit dem System der MySQLi-Datenbank verknüpft. Der SQL-Befehlssatz bleibt bestehen, wird aber durch die PHP-Umgebung ummantelt, damit beide kommunizieren können: die Datenbank weiß, was Sache ist und PHP versteht die Antwort. MySQL + PHP bedeutet, dass man direkt vom Skript aus auf die Daten zugreifen kann.

Die Grundvoraussetzung ist einmal das Anlegen einer Datenbank, was auch von PHP aus möglich ist und dann braucht es die Verbindung zur Datenbank.

Damit ist die Grundbasis gelegt und man kann Tabellen anlegen und die Daten speichern. Dabei kann mit mysqli_insert_id die aktuelle laufende Nummer für weitere Aktionen nützlich sein und wichtig ist das Verständnis mit mysqli_close, um nicht mehr gebrauchte Verbindungen zu beenden. Wichtig ist aber auch die richtige Schreibweise beim Arbeiten mit den Daten.

Das Herzstück ist aber die Abfrage. Zweifelsohne braucht man delete und andere Befehle auch, um zu manipulieren, aber mit select kann man verschiedenste Abfragen durchführen wie nach Kriterium, Menge oder auch als Stringabfrage samt Sortierungsangabe.

Diesen Artikel teilen

Kategorien

Grundlagen
HTML-Grundlagen
CSS-Grundlagen
Javascript-Grundlagen
PHP-Grundlagen
MySQL-Grundlagen
SEO-Grundlagen

Infos, Tipps, Vermarktung
Webdesign-Lexikon
Online-Werbung
PHP-Codeschnipsel