Yii获取所有数据库

时间:2012-11-27 04:04:14

标签: yii

我试图在我的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框架获得更多第一种解决方案吗? 谢谢。

1 个答案:

答案 0 :(得分:0)

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