Suchmaschine

Loading
Sie sind hier: Startseite -> MySQL-Grundlagen -> Insert

MySQL-Grundlagen: Insert zum Daten speichern

Insert-Befehl zum Anlegen von Datensätze

Hat man die Datenbank und die entsprechenden Datentabellen angelegt, geht es als nächstes darum, die Tabelle mit Daten zu füttern. Während sehr viele Anwender im Rahmen vom Webhosting mit phpMyAdmin das Anlegen erledigen, ist das Speichern von Informationen ein klarer Fall von Automatisierung. Nur zu Übungszwecke wird ein manuelles Skript verwendet.

Angelegt und gespeichert werden die Daten über den MySQL-Befehl insert.

Das Beispiel zeigt zwei Varianten, wie man Daten speichern kann, wobei die erste die üblichere Form ist. Vorausgesetzt wird bei diesem Beispiel, dass man die Daten schon erhoben hat - zum Beispiel nach der Auswertung einer Formularausgabe. Die Daten sind in den entsprechenden Variablen gespeichert, zum Beispiel der Vorname in $vorname.

Tipp: man sollte immer die Variablen und die Feldnamen in der Datenbank gleich benennen, dann reduziert sich die Qualität des Fehlerteufels und man muss weniger nachdenken, wie denn nun die Felder in der Datenbank heißen könnten.

Im ersten Fall ($sql) wird mit "insert into adressen" MySQL mitgeteilt, dass ein neuer Datensatz in die Datentabelle adressen eingefügt werden soll. Values ist das Signalwort, dass nun die eigentlichen Daten kommen, wobei diese in einer nachstehenden Klammer zu finden sind. Gibt es ein Feld, für das keine Daten zur Verfügung sind oder die eine andere Funktion haben, dann bleibt das Feld leer, was in dem Fall bedeutet, dass mit '' keine Daten geschickt werden. Wichtig ist aber, dass diese "Leermeldung" eingebaut wird, weil sonst die Zahl der Felder beim Speichern und in der Datentabelle nicht übereinstimmen würden.

Im zweiten Fall ($sql1) wird angeführt, dass nur die Daten vom Vornamen und Nachnamen gegeben sind, die anderen Felder bleiben leer. Es ist Geschmackssache, welche Variante man wählt, wobei die erste deshalb auch meist genommen wird, weil man ohnehin für alle Felder Daten hat.

Warum ist das erste Feld nun leer geblieben? Das ist einfach zu erklären und ebenfalls eine typische Handlung, weil es sich um die ID handelt. Dies ist die fortlaufende Zahl wie ein Counter und zählt beim Speichern des Datensatzes automatisch (Erinnerung: Einstellung auto_increment) um eins hoch. Daher braucht man nicht vorher eine Abfrage durchführen, welche ID die letzte war und diesen Wert um eins erhöhen, das erledigt MySQL von sich aus.

Zuletzt gibt es (am Beispiel von $sql) die Zuweisung mit mysql_query, die Speicherung wirklich durchzuführen. Ist diese nicht erfolgreich, soll die MySQL-Fehlermeldung erfolgen (mysql_error()).

Eine andere Variante ist auch möglich und wird gerne verwendet - nämlich die Nummer drei im Beispiel, bei der mysql_query direkt verwendet wird. Der Umweg über die Abfrage, ob es geklappt hat oder nicht erfolgt nicht, was eine direktere Programmierung bedeutet, aber gleichzeitig hat man ein Problem, wenn es einen Fehler gibt - weil die Fehlermeldung bekommt man dann nicht.

 

Suchmaschine
Bitte gewünschten Suchbegriff im Formular eingeben.

Loading