如何在PHP脚本中显示MySQL数据库?

5tmbdcev  于 2023-04-28  发布在  PHP
关注(0)|答案(5)|浏览(128)

我想显示服务器上所有数据库的列表,当我这样做时:

echo mysql_query(" SHOW DATABASES ");

我得到这个错误:

Resource id #3

那么,如何做到这一点?

xqkwcwgp

xqkwcwgp1#

您需要从查询中检索结果集,如下所示:

$set = mysql_query('SHOW DATABASES;');
$dbs = array();
while ($db = mysql_fetch_row($set))
{
   $dbs[] = $db[0];
}
echo implode('<br/>', $dbs);
bgtovc5b

bgtovc5b2#

很明显,你是PHP的新手,所以这里有一个很大的提示。
“mysql”扩展是旧的和失败的。不要使用它,停止阅读任何告诉你使用它的教程。
相反,learn PDO,它适用于大多数数据库引擎,并 * 帮助你做正确的事情 *。下面是一个例子:

$dbh = new PDO('mysql:host=localhost;user=foo;password=bar;dbname=baz');
$statement = $dbh->query('SHOW DATABASES');
print_r( $statement->fetchAll() );
lmvvr0a8

lmvvr0a83#

Jacob Relkin的解决方案非常好。
如果你使用MySQL 5。x我只会改变一件事
而不是使用SHOW数据库;我会用这个查询
SELECT schema_name FROM information_schema。图式;

rm5edbpk

rm5edbpk4#

只列出有用的数据库,而不列出系统数据库:

$query = "SELECT schema_name FROM information_schema.schemata WHERE schema_name
    NOT IN ('information_schema', 'mysql', 'performance_schema')";

$result = mysqli_query($link, $query) or die(mysqli_error($link));
$dbs = array();
while($db = mysqli_fetch_row($result))
   $dbs[] = $db[0];
echo implode('<br/>', $dbs);

您的MySQL用户应该具有完全访问权限,否则您将只能看到您至少具有读取权限的数据库。

noj0wjuj

noj0wjuj5#

您将得到一个查询结果集。您需要像这样检索结果行:

$r = mysql_query("SHOW DATABASES");
while ($row = mysql_fetch_assoc($r)) {
    print_r($row);
}

做这件事有什么意义

相关问题