Derzeit online: ca. 74 User  
Spenden via PayPal PHP für dich ist auch als Buch erhältlich - im handlichen Format, zum Nachschlagen, Mitnehmen oder gemütlichen nebenbei Lesen. Mit noch mehr Informationen, zusätzlichen Beispielen und Übungsaufgaben.
Jetzt in der aktualisierten Version bei Amazon oder BoD bestellen!


MySQL

Immer mehr Daten...

... sollen in unsere Tabelle.

Das Einfügen von Daten in eine Datenbank funktioniert am sinnvollsten mit einem Formular, in das diese Daten eingegeben werden können und das danach übermittelt wird.

In unserem Fall mit der Linkliste könnte man damit z. B. eine Linkliste, in die andere ihre Seiten eintragen können realisieren. Oder es dient einfach als Online-Administration.

Ich setze jetzt also ein Formular voraus, in das die Url, der Name des Links, der Name des Seitenbesitzers, eine Bannerurl und eine Beschreibung eingetragen werden. Das Formular wird ganz normal mittels HTML erstellt, denk bitte daran, dass die Namen der einzelnen Formularfelder zu unseren Variablennamen werden. Wir wollen die Variablen url, hpname, name, banner und beschreibung verwenden.

Wenn das Formular für die Öffentlichkeit bestimmt ist, und du die übergebenen Daten nicht von Hand kontrollierst, bevor du sie in die Datenbank speicherst, ist es empfehlenswert, die aus dem Formular kommenden Daten zuerst zu überprüfen, ansonsten kann es zu Angriffen auf deine Datenbank kommen - da das aber tiefergehendes Wissen erfordert, lassen wir es für dieses Beispiel aus und übernehmen die Daten direkt.

Um es später übersichlichter zu machen, schreibe ich sie aber gerne in kurze Variablen um:
<?php
$url = $_POST["url"];
$hpname = $_POST["hpname"];
$name = $_POST["name"];
$banner = $_POST["banner"];
$beschreibung = $_POST["beschreibung"];
?>
Der Befehl zum Einfügen dieser Daten funktioniert jetzt so ähnlich wie die Abfrage. Zunächst wird festgelegt was, wo eingefügt werden soll und das wird in einer Variable gespeichert.
<?php
$eintrag = "INSERT INTO links (url, urlname, name, banner, beschreibung) VALUES ('$url', '$hpname', '$name', '$banner', '$beschreibung')";
?>
Nach dem "INSERT INTO" wird festgelegt in welche Tabelle und in welche Spalten (die Angabe der Spaltennamen erfolgt in Klammer) unsere Daten eingefügt werden sollen. Mit "VALUES" wird angegeben, was für Werte verwendet werden sollen. Da bei uns alles in Variablen gespeichert wird, werden diese Variablennamen in Hochkomma angeführt.

Da wir für die Spalte id Autowerte verwenden müssen wir diesen Wert nicht von Hand eintragen - er wird automatisch eines höher gesetzt als der vorige Wert war.

Um den Eintrag jetzt durchführen zu lassen verwenden wir wieder den Befehl mysqli_query.
<?php
$eintragen = mysqli_query($db, $eintrag);
?>
Und schon stehen die Daten in der Datenbank.

Das kann man natürlich auch wieder in einen einzelnen Befehl zusammen fassen:
<?php
$eintragen = mysqli_query($db, "INSERT INTO links (url, urlname, name, banner, beschreibung) VALUES ('$url', '$hpname', '$name', '$banner', '$beschreibung')");
?>
Gerade bei dieser Funktion passieren mir meistens Fehler, da es sehr schnell passiert, dass Variablennamen falsch geschrieben oder zuwenige Werte angeben werden. Dann erfolgt überhaupt kein Eintrag in die Datenbank. Gib also darauf acht.

SQL-Injections
Das hier ist ein Anfängertutorial, das die grundlegende Handhabung möglichst einfach und verständlich erklären soll. Es bezieht bewusst keine Sicherheitsmaßnahmen mit ein um übersichtlich und auch für Anfänger nachvollziehbar zu bleiben.
Zum Schutz vor SQL-Injections ist es in öffentlich zugänglichen Seiten anzuraten, sich mit der Funktion mysqli_real_escape_string zu beschäftigen. Beachte bitte, dass auf vielen Servern noch magic_quotes aktiv sind, die mit dieser Funktion kollidieren!


Nachdem wir jetzt Datensätze eingefügt haben, wollen wir auch wieder welche löschen.

Dieses Kapitel behandelt einen ersten Einstieg in die Arbeit mit mySQL-Datenbanken. Es dient dem grundsätzlichen Verständnis der Kommunikation zwischen PHP und der Datenbank. Für den produktiven Einsatz ist es sinnvoll, sich detailierter mit diesem Thema zu beschäftigen und besonderen Augenmerk auf Sicherheitsaspekte zu legen.

Autor: Claudia Unkelbach

=> Weiter
© 2001 - 2017 Claudia Unkelbach
Gießener Straße 75, 35396 Gießen