Die oben angeführen Beispiele können so nur in eine SQL-Konsole eingegeben werden. Wenn man über PHP mySQL steuern möchte, ist noch ein kleiner Umweg nötig.
Als erstes muss das Script veranlasst werden sich mit mySQL zu verbinden.
Diese Anweisungen braucht man immer wieder. In den Zeilen 2-5 teilt man dem Script die nötigen Angaben für die Datenbank mit. Die Variable "$server" kann in den meißten Fällen auf "localhost" bleiben, sollte das nicht funktionieren muss sie auf den Datenbankserver zeigen. Zu näheren Informationen fragt man hier dann am besten den Provider.
In Zeile 7 wird mit mysql_connect php mit der Datenbank verbunden. Zeile 8 wählt dann für weitere Anfagen die richtige Datenbank aus. Das @-Zeichen vor den beiden Befehlen unterdrückt eventuell auftretende Fehlermeldungen. Diese könnten auftreten wenn beispielsweise der Server "down" ist.
Um aber trotzdem den Benutzer nicht mit einem leeren Bildschirm stehen zu lassen, generiert man einfach eine eigene Fehlermeldung.
mysql_connect gibt als Ergebnis von seiner Aktion true oder false zurück, je nachdem ob eine Verbindung zustanden gekommen ist oder nicht. Das Ergebnis der Zeile @mysql_connect($server, $user, $pass); wird hier in $conn gespeichert. Über eine IF-Abfrage in Zeile 10 prüft man dann, ob $conn den Wert true oder false hat, sprich ob eine Verbindung zustande gekommen ist oder nicht.
Der Aufbau einer IF-Anweisung ist immer if (was testen) { was tun; } Hier ist der Test ob $conn nicht gleich TRUE ist. Nicht gleich ist also "!=", daneben gibt es noch "==" (ist gleicht) nicht zu verwechseln mit "=" welches einen Wert zuweißt wie in den Zeilen 2-5! Das ist eine der häufigsten Fehlerquellen in PHP, daher immer zweimal überprüfen ob man Zuweisung (=) und Vergleich (==) richtig einsetzt. Weitere Vergleichmöglichkeiten in PHP sind beispielsweise "<", ">", ">=", "<=", "<>" etc.
In dem "was tun"-Block, der abgearbeitet wird wenn keine Verbindung zustande gekommen ist, wird jetzt eine Fehlermeldung mit echo ausgegeben. mysql_error() gibt dabei eine genaue Fehlermeldung zurück. Diese ist aussagekräftiger als die, die in Zeile 7 unterdrückt wurde.
Der Befehl die; bricht das Script dann an dieser Stelle ab und verhindern das ohne Datenbankverbindung weitere Zugriffe (und somit Fehler) stattfinden.
Jetzt aber zu einer ersten Datenbankabfrage über php. Dem Bespiel liegt die Tabelle aus Codebox 3 zugrunde:
Die Zeile 2 ist von den SQL-Beispielen bekannt. Hiermit werden alle Spalten von der Tabelle "tab_obst" selektieren, die in der Spalte "dasalter" einen Wert haben - also großer oder kleiner '' (zwei einfache Anführungszeichen = nichts) - sind. Man tun hier nichts anderes, als die SQL-Abfrage in $query zu speichern. Über mysql_query() wird diese Abfrage dann an die zuvor (Codebox 4) geöffnete Verbindung gesendet. Die Rückmeldung von SQL wird in $result gespeichert. Diese Rückmeldung ist ein Zeiger auf eine Ergebnisliste in der alle Tabellenreihen, die zum Ergebnis passen, zwischengespeichert sind. Da man damit für die Ausgabe noch nicht viel anfangen können, holt man sich jetzt jeweils eine Zeile der Ergebnisliste heraus und speichern diese Daten in $daten. Genau das geschiehtüber mysql_fetch_array. Die erste Variable in der folgenden Klammer sagt dem Befehl welchen Zeiger auf eine Ergebnisliste er verwenden soll. Hier der zuvor erzeugte Zeiger $result.
Die Daten einer Tabellenreihe liegen jetzt in $daten. $daten ist somit ein Array. Arrays sind Variablen die mehr als einen Wert haben. Wenn die erste Tabellenzeile eingelesen wird, hat $daten die Werte "apfel", "grün" und "7". Damit man auf die Daten zugreifen kann, hat jedes Array einen Index. Dieser beginnt in der Regel bei 0 und zählt jeweils um 1 hoch. Man kann also über $daten[0] auf den Wert "apfel" zugreifen. Dementsprechend wäre $daten[2] == 7. Diese Zuweisung ist bei größeren Tabellenreihen eher umständlich, da man immer die Position der gewünschten Daten im Kopf haben muss. Mit dem Zusatz MYSQL_ASSOC veranlassen wir php neben(!) dem Indizierten Index "[0]" noch einen weiteren Assoziatives Index anzulegen. php benutzt hierfür die SQL-Namen der Tabellenspalten. Auf den Begriff "apfel" kann man also auch über $daten[obst] zugreifen. In dem Beispiel wird dann auch die schlüssigere zweite Methode verwendet.
Ein Befehl in dem Beispiel ist noch nicht erläutert wurden (while). Über mysql_fetch_array wurde auf eine(!) Zeile der Ergebnisliste zugegriffen. Die Ergebnisliste sollte aber über 2 Reihen verfügen, da auch birne ein Alter angegeben hat. Anmerkung: in der Regel kennt man die Länge der Ergebnisliste nicht.
Über eine while-Schleife kann man das abarbeiten einer unbekannt langen Liste bewerkstelligen. Mit while wird ein Befehlsblock (zwischen { und }) solange abgearbeitet, wie die Bedingung (zwischen ( und )) zutrifft. Ähnlich wie mysql_connect oben, gibt auch mysql_fetch_array FALSE zurück wenn es keine Tabellenzeile mehr findet, die es in $daten speichern kann. Solange also Daten gefunden werden, wird true zurückgegeben und die beiden echo-Befehle in den geschwungenen Klammern abgearbeitet.