在我的网页上,我想列出所有通过PHP在mysql中可用的数据库。
以下代码列出了所有数据库:
<?php
$link = mysql_connect('localhost', 'root', 'pass123');
$res = mysql_query("SHOW DATABASES");
while ($row = mysql_fetch_assoc($res)) {
echo $row['Database'] . "\n";
}
?>
但是,我想从数据库列表中排除'information_schema', 'mysql' and 'performance_schema'
。
在mysql终端,我尝试过:
show schema_name as database from information_schema.SCHEMATA where schema_name NOT IN ('information_schema','mysql');
但是出现错误。...未知的列名schema_name。
答案 0 :(得分:2)
仅从php端进行排除,如下所示。
$link = mysql_connect('localhost', 'root', 'pass123');
$res = mysql_query("SHOW DATABASES");
$exclude_db = array('information_schema', 'mysql', 'performance_schema');
while ($row = mysql_fetch_assoc($res)) {
if(!in_array($row['Database'], $exclude_db)){
echo $row['Database'] . "<br />\n";
}
}
已编辑:
我们也可以像下面这样在查询本身中排除
SELECT `schema_name` from INFORMATION_SCHEMA.SCHEMATA WHERE `schema_name` NOT IN('information_schema', 'mysql', 'performance_schema');