Start · Sprachen · PHP · Referenz · mysql_db_name

mysql_db_name

Funktion

Liefert den Namen einer Datenbank aus dem Ergebnis eines <code>mysql_list_dbs()</code>-Aufrufs anhand des Zeilenindex.

seit PHP 4.0.0 Kategorie: db

Signatur

mysql_db_name(resource $result, int $row, mixed $field = null): string|false

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

Typ
string|false
Beschreibung
Gibt den Namen der Datenbank als 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);
?>
Gefundene Datenbanken: 3 information_schema mysql meine_app_db

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);
?>
Zweite Datenbank: mysql

// 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.