0

我正在尝试在我的 Yii 应用程序中获取所有数据库。我的第一个解决方案如下:

$dsn = "mysql:host = localhost; dbname=myDBname";
$username = "myUsername";
$password = "myPassword";

$command = "show databases";
$db = new PDO($dsn, $username, $password);
$db->query($command);
var_dump($db->query($command)->fetchAll()) ;

但是,我知道这个解决方案没有利用框架。所以我尝试寻找更好的方法,可能看起来像这样:

        $sql = "show databases";
        $command = Yii::app()->db->createCommand($sql);
        $result = $command->query();
        var_dump($result);

但是,通过这种方式,结果并不像我预期的那样。它实际上返回 CDbDataReader 类的对象实例。并且访问真实 PDO 对象的属性是私有的(它的名称是“_statement”),所以我无法访问它来获取所有数据库。那么,你能帮我找到一种更优雅的方法,可以从 Yii 框架中获得比第一个解决方案更多的东西吗?谢谢你。

4

1 回答 1

0

哦,我得到了答案,我只需要将“query”方法更改为“queryAll”,所以它看起来像这样: var_dump(Yii::app()->db->createCommand('SHOW DATABASES')->queryAll() );

于 2012-11-27T07:46:48.013 回答