2010-06-12 12 views
12

So wählen Sie alle Tabellen aus mehreren Datenbanken in mySql .. Ich mache die folgenden Schritte, aber nicht in der Lage, das Ziel zu erreichen.So zeigen Sie alle Tabellen aus mehreren Datenbanken an

<?php 
$a = "SHOW DATABASES"; 
$da = $wpdb->get_results($a); 

foreach($da as $k){ 
echo '<pre>'; 
print_r ($k->Database);//prints all the available databases 
echo '</pre>'; 
$nq = "USE $k->Database";//trying to select the individual database 
$newda = $wpdb->get_results($nq); 
$alld = "SELECT * FROM $k->Database"; 
$td = $wpdb->get_results($alld); 
var_dump($td);//returns empty array 
} 
?> 

Bitte helfen Sie mir

Antwort

7

Sie nicht

SELECT * FROM database 

tun können, aber Sie können

USE DATEBASE; 
SHOW TABLES; 

oder noch besser:

SHOW TABLES IN database 
+4

Sie sollten Antwort als die richtige @ cherouvim die wählen! – JonyD

7

Noch besser:

Alle Tabellen in allen Datenbanken (mit Ausnahme von internen MySQL-Datenbanken) in einer SQL-Anweisung.

SELECT table_schema, table_name FROM information_schema.tables WHERE table_schema NOT IN ('information_schema', 'performance_schema', 'mysql') 
0

mysql -e'select table_schema, table_name from information_schema.tables;'

Das hängt von Ihnen mit dem folgenden Inhalt einer Datei ~/.my.cnf anstelle mit:

[client] 
user=ADMINUSER  ## set user, usually 'root' 
password=PASSWORD ## set password