php mysqli列表数据库

6 php mysqli

早上好.

我想知道在PHP中是否有办法通过使用mysqli列出所有可用的数据库.以下在mysql中顺利工作(参见php docs):

$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$db_list = mysql_list_dbs($link);

while ($row = mysql_fetch_object($db_list)) {
 echo $row->Database . "\n";
}  
Run Code Online (Sandbox Code Playgroud)

我可以改变:

$db_list = mysql_list_dbs($link); // mysql
Run Code Online (Sandbox Code Playgroud)

变成这样的东西:

$db_list = mysqli_list_dbs($link); // mysqli
Run Code Online (Sandbox Code Playgroud)

如果这不起作用,是否可以将创建的mysqli连接转换为常规mysql并继续获取/查询新转换的连接?

Mar*_*iot 9

它似乎没有可用的功能,但您可以执行show databases;查询,返回的行将是可用的数据库.


小智 6

我意识到这是一个老线程,但搜索'网仍然似乎没有帮助.这是我的解决方案;

$sql="SHOW DATABASES";
$link = mysqli_connect($dbhost,$dbuser,$dbpass) or die ('Error connecting to mysql: ' . mysqli_error($link).'\r\n');

if (!($result=mysqli_query($link,$sql))) {
        printf("Error: %s\n", mysqli_error($link));
    }

while( $row = mysqli_fetch_row( $result ) ){
        if (($row[0]!="information_schema") && ($row[0]!="mysql")) {
            echo $row[0]."\r\n";
        }
    }
Run Code Online (Sandbox Code Playgroud)

  • @DenizZoeteman没有必要对一个直接回答问题的帖子发表评论,无论年龄大小.它帮助了我,完全否定了你的观点.是的,相同的信息在互联网上的其他地方,但它并不总是呈现给每个人理解的正确方式.有些人和他们的高马...... (4认同)