我试图在我的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框架获得更多第一种解决方案吗? 谢谢。
答案 0 :(得分:0)
哦,我得到了答案,我只需将“查询”方法更改为“queryAll”,所以它看起来像这样: var_dump(Yii :: app() - > db-> createCommand('SHOW DATABASES') - > queryAll());