首页 > 解决方案 > 如何使用 PDO 在 localhost 中获取数据库数组

问题描述

尝试使用 PDO 在 localhost 中获取数据库数组

$user = 'root';
$server = 'localhost';
$db = new PDO("mysql:host=$server", $user);

$sql = "show databases";
$st = $db->prepare($sql);
$st->execute();
$arr = $st->fetchAll(PDO::FETCH_ASSOC);
foreach($arr as $el){
    echo $el . '<br>'; // error - array to string conversion
}

也试过:

 $arr = $st->fetch(PDO::FETCH_ASSOC);

结果 - 仅回显第一个数据库

有什么帮助吗?

标签: phpmysql

解决方案


只需遍历结果并打印它:

while ($arr = $stmt->fetch(PDO::FETCH_ASSOC)){
    print_r($arr);
}

结果是您的本地主机中的数据库名称。例如:

Array
(
    [Database] => mysql
)
Array
(
    [Database] => performance_schema
)
Array
(
    [Database] => phpmyadmin
)

编辑:

$databases = [];
while ($arr = $stmt->fetch(PDO::FETCH_ASSOC)){
    $databases[] = $arr["Database"];
}

推荐阅读