de.comp.lang.php.* FAQ

17.2. Wie greife ich auf eine MySQL-Datenbank zu?

Antwort von Kristian Köhntopp

Mit Hilfe der Funktion mysql_connect() kann man eine Datenbankverbindung zu einem MySQL-Server aufbauen, um dann mit mysql_select_db() die Datenbank auf dem Server auszuwählen. Das Resultat ist eine Link-ID, die man bei allen anderen MySQL-Funktionen angeben kann.

In der php.ini kann man festlegen, welche Datenbank und welcher Benutzername und welches Passwort die Funktion verwenden soll, wenn diese Angaben beim Funktionsaufruf weggelassen werden, auch wenn es nur untermittelschlau ist, dies zu tun:

; default host for mysql_connect() (doesn't apply in safe mode)
mysql.default_host  =
; default user for mysql_connect() (doesn't apply in safe mode)
mysql.default_user  =
; default password for mysql_connect() (doesn't apply in safe mode)
mysql.default_password  =

; Note that this is generally a *bad* idea to store passwords
; in this file. *Any* user with PHP access can run
; 'echo cfg_get_var("mysql.default_password")' and reveal that
; password!  And of course, any users with read access to this
; file will be able to reveal the password as well.

Kontaktaufnahme mit dem Server und Festlegen der Datenbank:

  $link = mysql_connect("localhost", "ich", "geheim");
  if (!$link)
    die("Kann den Server nicht erreichen.");
  if (!mysql_select_db("meinedatenbank", $link))
    die("Kann die Datenbank nicht anwählen.");

Das Senden einer Anfrage an die Datenbank erfolgt mit Hilfe der Funktion mysql_query() . Diese Funktion liefert einen Result-Identifier, mit dem dann das Ergebnis abgefragt werden kann: Mit der Funktion mysql_num_rows() bestimmt man die Anzahl der Zeilen des Ergebnisses und mit Hilfe der Funktion mysql_fetch_array() kann man die jeweils aktuelle Zeile des Ergebnisses einlesen.

$query = "SELECT * FROM meinetabelle ORDER BY id";
$result = mysql_query($query, $link);
if (!$result)
{
    print mysql_error();
    die("Query $query ist ungültiges SQL.");
}

$zeilen = mysql_num_rows($result);
printf("Das Ergebnis hat %d Zeilen.\n", $zeilen);

while($avar = mysql_fetch_array($result))
    printf("Spalte bla hat den Wert %s\n", $avar["bla"]);

mysql_free_result($result);
mysql_close($link);

Valid HTML 4.01! Valid CSS!

17.2. Wie greife ich auf eine MySQL-Datenbank zu?
http://www.php-faq.de/q/q-mysql-zugriff.html
Archiv der de.comp.lang.php-FAQ Dies ist eine Archivseite von 2008 und wurde seitdem nicht geändert. Das dclp-FAQ-Team