Signatur
Beschreibung
mysql_tablename() liest den Namen einer Tabelle aus einem Ergebnis-Datensatz, der zuvor mit mysql_list_tables() abgerufen wurde. Der Parameter $i gibt den nullbasierten Index der gewünschten Zeile im Ergebnis an.
Die Funktion ist ein bequemer Kurzweg zu mysql_result() mit festem Feldnamen und wurde häufig in älteren PHP-4/5-Projekten eingesetzt, um alle Tabellen einer Datenbank zu iterieren.
Wichtig: Sowohl mysql_tablename() als auch die gesamte mysql_*-Erweiterung sind seit PHP 5.5.0 als veraltet markiert und wurden in PHP 7.0.0 vollständig entfernt. Für neue Projekte sollten ausschließlich mysqli_*-Funktionen oder PDO verwendet werden.
Eine modernere Alternative, um Tabellennamen abzurufen, ist z. B. die SQL-Abfrage SHOW TABLES über MySQLi oder PDO.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $result Pflicht | resource | Eine gültige Ergebnis-Ressource, wie sie von mysql_list_tables() zurückgegeben wird. |
|
| $i Pflicht | int | Nullbasierter Index der Zeile im Ergebnis, deren Tabellenname abgerufen werden soll. |
Rückgabewert
string zurück. Im Fehlerfall oder wenn der Index außerhalb des gültigen Bereichs liegt, wird false zurückgegeben.Beispiele
Alle Tabellen einer Datenbank auflisten
<?php
// Verbindung herstellen (veraltete mysql_*-API, nur zu Demonstrationszwecken)
$link = mysql_connect('localhost', 'root', 'geheim');
if (!$link) {
die('Verbindung fehlgeschlagen: ' . mysql_error());
}
// Tabellenliste abrufen
$result = mysql_list_tables('meine_datenbank', $link);
if (!$result) {
die('Fehler: ' . mysql_error());
}
$anzahl = mysql_num_rows($result);
echo 'Anzahl Tabellen: ' . $anzahl . PHP_EOL;
for ($i = 0; $i < $anzahl; $i++) {
echo 'Tabelle ' . $i . ': ' . mysql_tablename($result, $i) . PHP_EOL;
}
mysql_free_result($result);
mysql_close($link);
?>
Moderne Alternative mit MySQLi (empfohlen)
<?php
// Empfohlene Alternative mit MySQLi
$mysqli = new mysqli('localhost', 'root', 'geheim', 'meine_datenbank');
if ($mysqli->connect_error) {
die('Verbindung fehlgeschlagen: ' . $mysqli->connect_error);
}
$result = $mysqli->query('SHOW TABLES');
if (!$result) {
die('Fehler: ' . $mysqli->error);
}
while ($zeile = $result->fetch_row()) {
echo 'Tabelle: ' . $zeile[0] . PHP_EOL;
}
$result->free();
$mysqli->close();
?>
// Wichtig · Fallstricke
Deprecation / Entfernung: Die mysql_*-Erweiterung (inkl. mysql_tablename()) wurde in PHP 5.5.0 als veraltet (deprecated) eingestuft und in PHP 7.0.0 vollständig entfernt. Sie steht in modernen PHP-Versionen nicht mehr zur Verfügung. Jeglicher Code, der diese Funktion verwendet, muss auf mysqli_* oder PDO migriert werden.
mysql_tablename() ist intern äquivalent zu mysql_result($result, $i, 0) und liefert dasselbe Ergebnis. Es handelt sich also lediglich um eine semantische Abkürzung.