我正在尝试在我的 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 框架中获得比第一个解决方案更多的东西吗?谢谢你。