Ответ 1
Вы не можете сделать
SELECT * FROM database
но вы можете сделать
USE DATEBASE;
SHOW TABLES;
или даже лучше:
SHOW TABLES IN database
Как выбрать все таблицы из нескольких баз данных в mySql.. Я делаю следующие шаги, но не могу достичь цели.
<?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
}
?>
Пожалуйста, помогите мне
Вы не можете сделать
SELECT * FROM database
но вы можете сделать
USE DATEBASE;
SHOW TABLES;
или даже лучше:
SHOW TABLES IN database
Используйте INFORMATION_SCHEMA:
select table_schema, table_name from information_schema.tables;
Еще лучше:
Показать все таблицы во всех базах данных (кроме внутренних баз данных mysql) в одном выражении SQL.
SELECT table_schema, table_name FROM information_schema.tables WHERE table_schema NOT IN ( 'information_schema', 'performance_schema', 'mysql' )
mysql -e'select table_schema, table_name from information_schema.tables;'
Это зависит от наличия у вас файла ~/.my.cnf
со следующим содержимым:
[client]
user=ADMINUSER ## set user, usually 'root'
password=PASSWORD ## set password
Я бы пошел на это это:
mysql -e "select table_schema, table_name from information_schema.tables;" | \
grep -Pv '^(sys|performance_schema|TABLE_SCHEMA|mysql|information_schema)' | \
perl -pe 's/\s+/./' | \
sort -u