Was ist PHP?

5 Wie ruft man Datenbanken auf?

PHP ist besonders dafür berühmt, dass es Bibliotheken für den optimalen Zugriff auf viele verschiedene Datenbanksysteme bietet. Als Beispiel beschreibe ich die Schnittstelle zum kostenlosen Datenbanksystem mySQL. Das Beispiel basiert auf der Umgebung beim Internet-Provider Strato.

Es wird eine Verbindung zum Datenbanksystem aufgebaut und dabei die Internet-Adresse des Datenbank-Hosts, der Name des Datenbank-Benutzers und ein Passwort mitgegeben. Bei Strato ist der Benutzername identisch mit dem Namen der Website des Benutzers.

$verbindung = mysql_connect ( 'rdbms.strato.de', 'www.ymir.de', 'passwort' );

Jetzt wählt man eine Datenbank des Datenbanksystems aus. In Strato kann man über den Kundendienst genau eine Datenbank einrichten mit einem automatisch generierten Namen.

mysql_select_db( 'DB98765', $verbindung );

Jetzt können wir auf die Datebank zugreifen. Für Tests ist es praktisch, die Abfrage einer Variablen zuzuweisen, denn dann kann man sie auch einfach ausgeben, sollte etwas nicht funktioniert. Die Syntax des SQL-Statements beschreibe ich im Dokument "Was ist SQL?".

$abfrage = "SELECT Name,Verlag,Jahr FROM spiele ORDER BY Name";
$ergebnis = mysql_query( $abfrage, $verbindung );

Einen Datensatz des Ergebnisses kann man mit verschiedenen Aufrufen bekommen:

Als Array, dessen Felder durch einen Index ansprechbar sind:

while( $einDatensatz = mysql_fetch_row( $ergebnis ) ) {
    echo "Name = " . $einDatensatz[0];
    echo "Jahr = " . $einDatensatz[2];
}

Als assoziatives Array, dessen Felder mit einem Namensstring angesprochen werden:

while( $einDatensatz = mysql_fetch_array ( $ergebnis ) ) {
    echo "Name = " . $einDatensatz( "Name" );
    echo "Jahr = " . $einDatensatz( "Jahr" );
}

Als Objekt, dessen Felder als Attribute angesprochen werden:

while( $einDatensatz = mysql_fetch_object ( $ergebnis) ) {
    echo "Name = " . $einDatensatz->Name;
    echo "Jahr = " . $einDatensatz->Jahr;
}

Natürlich kann eine Abfrage jede Art von SQL-Kommandos enthalten, also INSERT, UPDATE, DELETE, ...

Direkt nach jedem SQL-Aufruf kann man eventuelle Fehler abfragen und dessen Nummer und den Fehlertext ermitteln.

$ergebnis = mysql_query($query, $db);
if ( mysql_errno ( ) != 0 ) {
    echo 'Fehler bei' . $query . ': ' . mysql_error();
}

Nachdem man seine Arbeit mit der Datenbank beendet hat, sollte man sie wieder schließen:

mysql_close($verbindung);

Vorherige Hauptseite

© Copyright Mario Boller-Olfert 2001