Signatur
Beschreibung
mysql_db_name() ist eine Hilfsfunktion, die aus dem von mysql_list_dbs() zurückgegebenen Ergebnis-Ressource den Datenbanknamen einer bestimmten Zeile ausliest. Sie erspart das direkte Navigieren im Ergebnis mit mysql_result().
Die Funktion erwartet das Ergebnis-Handle, einen nullbasierten Zeilenindex ($row) sowie optional den Feldbezeichner ($field). In der Praxis kann $field weggelassen werden, da das Ergebnis von mysql_list_dbs() nur eine Spalte enthält.
Typischer Einsatz ist das Iterieren über alle vorhandenen Datenbanken auf einem MySQL-Server, zum Beispiel für administrative Skripte oder zur dynamischen Auswahl einer Datenbank.
Achtung: Die gesamte mysql_*-Erweiterung ist seit PHP 5.5.0 als veraltet markiert und wurde in PHP 7.0.0 entfernt. Für neue Projekte sollte stattdessen mysqli oder PDO verwendet werden.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $result Pflicht | resource | Das Ergebnis-Handle, das von mysql_list_dbs() zurückgegeben wurde. |
|
| $row Pflicht | int | Nullbasierter Zeilenindex im Ergebnis-Set; gibt an, welche Datenbank abgerufen werden soll. | |
| $field | mixed | null | Optionaler Feldbezeichner (Feldname als string oder Feldindex als int). Kann in der Regel weggelassen werden, da das Ergebnis von mysql_list_dbs() nur ein Feld enthält. |
Rückgabewert
string zurück. Bei einem Fehler (z. B. ungültiger Zeilenindex oder ungültiges Ergebnis-Handle) wird false zurückgegeben.Beispiele
Alle Datenbanken eines MySQL-Servers auflisten
<?php
// Verbindung zur MySQL-Datenbank herstellen
$link = mysql_connect('localhost', 'root', 'geheimesPasswort');
if (!$link) {
die('Verbindung fehlgeschlagen: ' . mysql_error());
}
// Liste aller Datenbanken abrufen
$dbs = mysql_list_dbs($link);
if (!$dbs) {
die('Datenbankenliste konnte nicht abgerufen werden: ' . mysql_error());
}
$anzahl = mysql_num_rows($dbs);
echo "Gefundene Datenbanken: $anzahl\n";
for ($i = 0; $i < $anzahl; $i++) {
echo mysql_db_name($dbs, $i) . "\n";
}
mysql_free_result($dbs);
mysql_close($link);
?>
Bestimmte Datenbank per Index abrufen
<?php
$link = mysql_connect('localhost', 'root', 'geheimesPasswort');
$dbs = mysql_list_dbs($link);
// Zweite Datenbank (Index 1) abrufen
$name = mysql_db_name($dbs, 1);
if ($name !== false) {
echo "Zweite Datenbank: " . $name . "\n";
} else {
echo "Kein Eintrag an Position 1 gefunden.\n";
}
mysql_free_result($dbs);
mysql_close($link);
?>
// Wichtig · Fallstricke
Veraltet / Entfernt: Die mysql_*-Erweiterung wurde in PHP 5.5.0 als veraltet (deprecated) markiert und in PHP 7.0.0 vollständig entfernt. Code, der diese Funktionen verwendet, lässt sich ab PHP 7 nicht mehr ausführen.
Für moderne Projekte sollte mysqli_query() mit dem SQL-Befehl SHOW DATABASES oder das PDO-Äquivalent genutzt werden. Die Berechtigungen, Datenbankenlisten abzufragen, sind zudem abhängig von den MySQL-Nutzerrechten – ohne ausreichende Rechte wird das Ergebnis leer oder fehlerhaft sein.
Die Funktion mysql_db_name() ist intern ein Alias für mysql_result($result, $row, 0) und verhält sich entsprechend bei ungültigen Indizes.