Alle Tabellen in einer MySQL-Datenbank mit PHP anzeigen?

Lesezeit: 3 Minuten

Benutzeravatar von Jadar
Jadar

Ich versuche, alle Tabellen in meiner Datenbank anzuzeigen. Ich habe das versucht:

$sql = "SHOW TABLES";
$result = $conn->query($sql);
$tables = $result->fetch_assoc();
foreach($tables as $tmp)
{
    echo "$tmp <br>";
}

aber es gibt mir nur einen Tabellennamen in einer Datenbank, von der ich weiß, dass sie 2 hat. Was mache ich falsch?

Benutzeravatar von Jason Heo
Jason Hey

So kommen Sie an Tische

1. SHOW TABLES

mysql> USE test;
Database changed
mysql> SHOW TABLES;
+----------------+
| Tables_in_test |
+----------------+
| t1             |
| t2             |
| t3             |
+----------------+
3 rows in set (0.00 sec)

2. SHOW TABLES IN db_name

mysql> SHOW TABLES IN another_db;
+----------------------+
| Tables_in_another_db |
+----------------------+
| t3                   |
| t4                   |
| t5                   |
+----------------------+
3 rows in set (0.00 sec)

3. Informationsschema verwenden

mysql> SELECT TABLE_NAME
       FROM information_schema.TABLES
       WHERE TABLE_SCHEMA = 'another_db';
+------------+
| TABLE_NAME |
+------------+
| t3         |
| t4         |
| t5         |
+------------+
3 rows in set (0.02 sec)

zu OP

Sie haben nur 1 Zeile abgerufen. so beheben:

while ( $tables = $result->fetch_array())
{
    echo $tmp[0]."<br>";
}

und ich denke, information_schema wäre besser als SHOW TABLES

SELECT TABLE_NAME
FROM information_schema.TABLES 
WHERE TABLE_SCHEMA = 'your database name'

while ( $tables = $result->fetch_assoc())
{
    echo $tables['TABLE_NAME']."<br>";
}

  • oder SHOW TABLES IN DB_MANE

    Benutzer557846

    25. November 2013 um 1:49 Uhr

  • Es gibt keinen Grund, es nicht zu verwenden SHOW TABLES es sei denn, die aktive Verbindung verwendet temporäre Tabellen.

    Benutzer188654

    25. November 2013 um 1:54 Uhr

  • @holodoc das ist meine persönliche Meinung. Titel von SHOW TABLEDie Ausgabe von ist so etwas wie 'Tables_in_TBL_NAME'. also bei der Ausführung im Client-Programm. Der Spaltenname wird also geändert. und die Leute wissen nichts über information_schema, das nützlichere Informationen über DB enthält

    – Jason Hey

    25. November 2013 um 2:02 Uhr

  • Perfekt. Aus irgendeinem Grund dachte ich, dass es nur ein Array der tatsächlichen Tabellen zurückgeben würde, keine Zeilen.

    – Jadar

    25. November 2013 um 3:53 Uhr

  • Lösung #3 gefällt mir am besten. Das information_schema.tables Tabelle gibt mir viel mehr Informationen. Immer schön reinzuschauen

    – peterb

    27. November 2017 um 4:10 Uhr

Versuche dies:

SHOW TABLES FROM nameOfDatabase;

SHOW TABLE_NAME ist ungültig. Probieren Sie SHOW TABLES aus

TD

  • Hoppla, das wollte ich ändern. Ich habe verschiedene Dinge getestet und einfach meinen Code kopiert und eingefügt. Es war SHOW TABLES

    – Jadar

    25. November 2013 um 3:27 Uhr

SHOW TABLES listet nur die nicht-TEMPORARY-Tabellen in einer bestimmten Datenbank auf.

https://dev.mysql.com/doc/refman/5.0/en/show-tables.html

<?php
$dbname="mysql_dbname";
if (!mysql_connect('mysql_host', 'mysql_user', 'mysql_password')) {
echo 'Could not connect to mysql';
exit;
}
$sql = "SHOW TABLES FROM $dbname";
$result = mysql_query($sql);
if (!$result) {
echo "DB Error, could not list tables\n";
echo 'MySQL Error: ' . mysql_error();
exit;
}
while ($row = mysql_fetch_row($result)) {
echo "Table: {$row[0]}\n";
}
mysql_free_result($result);
?>
//Try This code is running perfectly !!!!!!!!!!


  • Dies ist nur ein Codeschnipsel. Wenn es sich um eine tatsächliche Antwort handelt, sollte sie erklären, wie sie funktioniert und warum sie eine bessere Antwort ist als die anderen.

    – Jadar

    31. März 2016 um 21:31 Uhr

  • Ich fand dies als schnellen Ausschnitt zum Experimentieren nützlich. Vielen Dank!

    – Nick Weber

    11. April 2019 um 15:46 Uhr

  • Dies ist nur ein Codeschnipsel. Wenn es sich um eine tatsächliche Antwort handelt, sollte sie erklären, wie sie funktioniert und warum sie eine bessere Antwort ist als die anderen.

    – Jadar

    31. März 2016 um 21:31 Uhr

  • Ich fand dies als schnellen Ausschnitt zum Experimentieren nützlich. Vielen Dank!

    – Nick Weber

    11. April 2019 um 15:46 Uhr

1407570cookie-checkAlle Tabellen in einer MySQL-Datenbank mit PHP anzeigen?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy