Alle Tabellen einer MySQL-Datenbank ausgeben lassen

Will man eine Liste der Tabellen einer Datenbank erhalten, dann geht dies mit der Query :

SQL
SHOW TABLES FROM MyDatabase;

Dabei kommt die Antwort immer in der Ergebnis-Spalte „Tables_in_MyDatabase“ und läßt sich so nicht flexibel und komfortabel weiterverarbeiten. Dies kann unter Umständen aber sinnvoll sein, wenn bspw. in einem Plugin für WordPress der Datenbank-Name variiert. Deshalb gehe ich lieber über das „INFORMATION_SCHEMA“, da ich auf diesem Weg die Möglichkeit habe, eine Ergebnis-Spalte festzulegen:

SQL
SELECT TABLE_NAME AS tables FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'MyDatabase';

Folgender PHP-Code ließt alle Tabellen der aktuellen WordPress-Datenbank und gibt sie wie gewohnt als Result-Array zurück, wobei die Ergebnis-Spalte selbst gewählt „tables“ ist:

PHP
// WordPress-Datenbank-Name ist bspw. „MyTable“
global $wpdb;
$sql = $wpdb->prepare( "SELECT TABLE_NAME AS tables FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = %s", $wpdb->dbname );
$tables = $wpdb->get_results( $sql, ARRAY_A );

Nun ist diese so kodierte Query flexibel in jeder WordPress-Umgebung anwendbar.

Viel Spaß damit

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert