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 に答える