MySQL Grundlagen
Ohne geht fast nichts mehr! Fast jede Dynamische Seite mit PHP hat MySQL oder ähnliche Datenbanken als Backend. Doch wieso? Was kann mir diese Datenbank namens MySQL bieten? Hier sind einige Vorteile:
- Schneller Zugriff auf meine Daten per SELECT
- Einfaches Hinzufügen und Entfernen der Datensätze über DELETE und INSERT
- Schnelles Update meiner Daten über UPDATE
Der Grund warum so viele MySQL benutzen liegt vor allem an den SQL - Dieser Query lässt sich per PHP doch Dynamisch generieren. Ich gehe hier nur kurz auf die einzelnen Befehle ein. Bei größeren Interesse folgt ein weiteres Tutorial.
Info: SQL = Structured Query Language. Diese Sprache erfreut sich auch bei anderen Datenbanken großer Beliebtheit.
Eine Verbindung herstellen
Damit alle Querys auch ankommen muss PHP zunächst eine Verbindung aufbauen. Das schaffen wir mit zweit Befehlen:
<?php
$db = mysql_pconnect(“server”,“user”,“passwort”);
mysql_select_db(“meine_db”,$db);
?>Hier müssen natürlich die richtigen Zugangsdaten eingegeben werden! Diese erhaltet Ihr von euren Webspace-Provider.
SELECT Befehl
Dieser Befehl liefert bestimmte Datensätze aus einer Tabelle. Diese können zum Beispiel auch direkt nach Kriterien sortiert werden. Ein einfacher Befehl lautet:
SELECT * FROM meine_tabelle WHERE name = ”Peter”Dieser Query würde mir alle Felder der Tabelle “meine_tabelle” liefern, deren Feld “name” den exakten Wert “Peter” haben. Wenn wir nun nur den passenden Nachnamen und die E-Mail haben wollen, weil uns das andere nicht interessiert werden wir anstatt ein Sternchen den passenden Feldnamen angeben.
SELECT nachname,email FROM meine_tabelle WHERE name = ”Peter”Das waren schon die Grundlagen der SELECT Anweisung! Damit wir aber mit diesen Daten Arbeiten können brauchen wir eine Schleife die jeden Datensatz ausliefert.
[php
$res=mysql_query(”SELECT nachname,email FROM meine_tabelle WHERE name = ‘Peter’”);
while($my = mysql_fetch_array($res))
{
echo $my[’nachname’];
echo ‘ -> ‘;
echo $my[’email’];
echo ‘
‘;
}
?> [/php]
Dieses Skript führt also mit den Befehl mysql_query aus und liefert den Rückgabewert als Ressource zurück. Diesen Rückgabewert können wir an den Befehl mysql_fetch_array() übergeben. Dafür bekommen wir nach jeden Durchlauf der While Schleife den nächsten Datensatz geliefert. Dieser wird in einen Array gespeichert.
Info: mysql_fetch_array() ist nur Ein Befehl von dreien! Zusätzlich gibt es noch mysql_fetch_row() und mysql_fetch_object(). Diese Befehle haben alle die selbe Aufgabe, liefern das Ergebnis jedoch in einem anderen Format zurück.
UPDATE Befehl
Dieser Befehl bewirkt das ändern mehrere Datensätze innerhalb einer Tabelle die ein gewisses Such Kriterium entsprechen.
UPDATE meine_tabelle SET vorname = ”Hans” WHERE vorname = ”Peter”Bei diesem Beispiel werden alle Datensätze mit den Vornamen “Peter” gesucht. Zusätzlich bekommen diese den neuen Vorname “Hans”. Der Befehl kann einfach in ein mysql_query() PHP Befehl eingetippt werden. Liefert allerdings kein Rückgabewert!
Info: Um zu prüfen wie viele Datensätze bei UPDATE und DELETE Befehle betroffen waren, kann danach der Befehl mysql_affected_rows() aufgerufen werden!
DELETE Befehl
Dieser einfache Befehl kann wohl den meisten Schaden anrichten! Also immer die WHERE Abfrage genau kontrollieren.
DELETE FROM meine_tabelle WHERE name=”Peter”Alle Datensätze mit in der Tabelle “meine_tabelle” werden gelöscht, sofern das Feld “name” den Wert “Peter” hat. Der Befehl kann ganz normal mit mysql_query() übermittelt werden. Liefert kein Rückgabewert!
INSERT Befehl
Neue Datensätze fügen wir mit dem INSERT Befehl spielend einfach ein. Es empfehlen sich wie immer vom Benutzer übermittelte Daten vorher zu Prüfen!
INSERT INTO meine_tabelle (vorname,nachname,email) VALUES (”Peter”,”Müller”,”test@testtest.de”)Soweit so gut! Aber was Bewirkt der Befehl? Wir fügen Ein Datensatz in unserer Tabelle “meine_tabelle”. Wir geben in der ersten Klammer alle Felder an die wir direkt beschreiben wollen. In der 2ten Klamme steht in der selben Reihenfolge der Wert für das Feld.