2010-06-12 9 views
12

Jak wybrać wszystkie tabele z wielu baz danych w mySql .. Wykonuję następujące kroki, ale nie mogę osiągnąć tego celu.Jak wyświetlić wszystkie tabele z wielu baz danych?

<?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 
} 
?> 

Proszę mi pomóc

Odpowiedz

7

Nie można zrobić

SELECT * FROM database 

ale można zrobić

USE DATEBASE; 
SHOW TABLES; 

albo nawet lepiej:

SHOW TABLES IN database 
+4

Należy wybrać odpowiedź @ cherouvim jako poprawny! – JonyD

7

Nawet lepiej:

Pokaż wszystkie tabele we wszystkich bazach danych (z wyjątkiem wewnętrznych baz danych MySQL) w jednej instrukcji SQL.

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;'

Zależy to od konieczności plik ~/.my.cnf w miejscu z następujących treści:

[client] 
user=ADMINUSER  ## set user, usually 'root' 
password=PASSWORD ## set password 
Powiązane problemy