MySQL-Funktionen in PHP
Erstellt: 01.12.2005 | Aktualisiert: 01.12.2005
Eine Liste aller Funktionen mit denen MySQL aus PHP heraus angesprochen werden kann, findet man im offiziellen PHP-Manual: MySQL-Funktionen
Der Zugriff auf eine MySQL-Datenbank ist relativ einfach. Am häufigsten werden folgende Funktionen verwendet, die an dieser Stelle auch anhand einfacher Beispiele vorgestellt werden.
mysql_connectverbindet mit dem Datenbankservermysql_select_dbwählt die Datenbank ausmysql_queryführt eine SQL-Anweisung ausmysql_num_rowsermittelt die Anzahl der Datensätzemysql_fetch_arrayholt die Daten in ein Array
Verbindung aufbauen und schliessen
Zum Aufbau einer Verbindung zur MySQL-Datenbank werden folgende Funktion verwendet.
mysql_connect('Server', 'Benutzername', 'Kennwort')mysql_close(Verbindungs-Kennung)
$server = "localhost"; // MySQL-Server
$user = "benutzer"; // MySQL-Nutzer
$pass = "passwort"; // MySQL-Kennwort
// Verbindung aufbauen
$con = mysql_connect($server, $user, $pass);
if (!$con) {
die('keine Verbindung: ' . mysql_error());
}
// Erfolgreiche Verbindung bestätigen
echo 'Verbindung erfolgreich';
// Verbindung beenden
mysql_close($con);
In vorliegendem Beispiel wird die Verbindung zum Schluss des Code-Snippets mit der Funktion mysql_close() wieder beendet. Dies ist nicht zwingend nötig, da alle Verbindungen nach dem Abarbeiten des Scripts automatisch beendet werden.
Weitere Angaben zu den Funktionen mysql_connect und mysql_close findet ihr im PHP-Online Manual unter folgenden Links: mysql_connect und mysql_close
Datenbank wählen
Nachdem man mit einer Datenbank verbunden hat, muss man eine bestimmte Datenbank wählen. Dies geschieht mit folgender Funktion:
mysql_select_db(Datenbankname, Verbindungs-Kennung)
$db = "test_db"; // DB-NAMEN
$db_selected = mysql_select_db($db, $con);
if (!$db_selected) {
die ('Keine Datenbank: ' . mysql_error());
}
Weitere Informationen zur Funktion mysql_select_db findet ihr im PHP-Manual: PHP-Manual: mysql_select_db
Verbindung und Datenbank-Kennung auslagern
Meistens werdet ihr in euren Webpräsenzen nur auf eine Datenbank zugreifen. Somit lassen sich die Verbindung zur Datenbank und die Wahl der Datenbank miteinander verknüpfen und in einer externen Datei auslagern.
Somit wird dieser Vorgang in einem Dokument zusammengefasst und kann über den PHP-Befehl require_once('Filename') im entsprechenden Script aufgerufen werden. Diese Verbindung wird dann für alle Datenbankabfragen benutzt.
Ausgelagerte Verbindungsdatei: connect.inc.php
Hauptdokument: bspdoc.php
Datensätze lesen
Für die Anfrage und das auslesen von Daten aus einer MySQL-Datenbank stehen in PHP unter anderem folgende Funktionen zur Verfügung.
mysql_query(Anfrage, Verbindungs-Kennung)mysql_fetch_row(Ergebnis-Kennung)mysql_fetch_array(Ergebnis-Kennnung, [Ergebnis-Typ])
// Einmaliges Aufrufen der MySQL-Verbindung
require_once('connect.inc.php');
// Ausführen einer SQL-Anfrage
$result = mysql_query("SELECT * FROM Projekte");
// Abfrage prüfen
if (!$result) {
die('Falsche Abfrage: ' . mysql_error());
}
// Ergebnis in XHTML ausgeben
while($row = mysql_fetch_array($result)){
echo '
'.$row["Titel"].'
';
}
Weitere Informationen zu den erwähnten Funktion findet ihr wiederum im Manual:
SQL-Befehle zum Ausgeben und Sortieren
Mit Hilfe des mächtigsten SQL-Befehls SELECT lassen sich Datensätze ausgeben. Einfachste Anweisung lautet:
SELECT * FROM Projekte
In diesem Beispiel würden alle Datensätze der Tabelle Projekte ausgegeben. Mit den zusätzlichen Anweisungen ORDER BY, LIMIT und der WHERE-Definition, lassen sich die Ergebnisse eingrenzen.
SELECT * FROM Projekte WHERE Kategorie-ID=1 ORDER BY Titel DESC LIMIT 0,5
In diesem Beispiel werden alle Projekte ausgegeben, die zur Kategorie 1 gehören. Die Ergebnisse werden geordnet nach Titel, d.h. alphabetisch und wegen der Anweisung DESC von Z nach A. Mit dem Befehl LIMIT wird definiert, dass nur die ersten fünf Datensätze angezeigt werden.
Mehr Information zu den SQL Befehlen gibts hier: SQL-Befehle
Neue Datensätze einfügen
Natürlich gibts in PHP auch die Möglichkeit mit der MySQL-Funktion mysql_query() neue Datensätze in die Datenbank zu schreiben. Die Daten stammen oft von einem XHTML-Formular.
mysql_query("INSERT INTO Projekte (field1, field2) VALUES ('value1', 'value2')")
mysql_query("INSERT INTO Projekte
(Titel, Untertitel, Abstract)
VALUES
('Tuigui-Projekt', 'Max, Jitter and more', 'Ein kurzer Text..')")
OR die(mysql_error());
Datensätze aktualisieren
Es lassen sich auch bestimmte Datensätze aktualsieren. Dies geschieht meist nach dem folgenden Prinzip.
mysql_query("UPDATE Projekte SET Titel='Neuer Titel', Untertitel='Neuer Untertitel' WHERE id='2'");
Datensätze löschen
Und es können dementsprechend auch Datensätze gelöscht werden. Dies mit der Anweisung DELETE.
mysql_query("DELETE FROM Projekte WHERE id='2'");
JOIN – Tabellen verbinden
Nun haben wir gelernt, wie wir Datensätze auselesen, einfügen, aktualsieren und löschen. Da wir unsere Daten auf verschiedene Tabellen verteilt haben, müssen wir sie auch wieder miteinander verbinden, um an die richtigen Ergebnisse zu gelangen. Der Begriff dafür heisst JOIN.
Im folgenden Beispiel wird der Fremdschlüssel Kategorie-ID aus der Tabelle Projekte, dank der Verbindung zwischen den Tabellen Projekte und Kategorien wieder aufgelöst. Die SELECT-Abfrage lautet dafür wie folgt.
SELECT Projekte.*, Kategorien.* FROM Projekte, Kategorien WHERE Projekte.Kategorie-ID=Kategorien.Kategorien-ID
Weitere Infos zur JOIN-Funktion in SQL gibts hier: JOINS
Links zum Thema
- Tutorials
- Referenz
- MySQL Database Manager (Mac OS X)