yii同じコントローラで複数のデータベーステーブルを操作する


main.php
        'db1'=>array(            'class'=>'CDbConnection',            'connectionString' => 'mysql:host=localhost;dbname=test1',            'emulatePrepare' => true,            'username' => 'root',            'password' => '',            'charset' => 'utf8',        ),        'db2'=>array(            'class'=>'CDbConnection',            'connectionString' => 'mysql:host=localhost;dbname=test',            'emulatePrepare' => true,            'username' => 'root',            'password' => '',            'charset' => 'utf8',        ),
 
データベース・テーブルを作成するには、次の手順に従います.
Create a table named testpost in db1 as follows:
DROP TABLE IF EXISTS `testpost`;

CREATE TABLE IF NOT EXISTS `post` (

    `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,

    `title` VARCHAR(255) NOT NULL,

    `text` TEXT NOT NULL,

    PRIMARY KEY  (`id`)

);

Create a table named test1comment in db2 as follows:
DROP TABLE IF EXISTS `test1comment`;

    CREATE TABLE IF NOT EXISTS `test1comment` (

    `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,

    `text` TEXT NOT NULL,

    `postId` INT(10) UNSIGNED NOT NULL,

    PRIMARY KEY  (`id`)

);

 
コントローラphp
title = "Post #".rand(1, 1000);        $post->text = "text";        $aa=$post->save();        echo '

Posts

';                $posts = Testpost::model()->findAll();        foreach($posts as $post)        {            echo $post->title."
";        }        echo "
";        $comment = new Test1comment();        $comment->postId = $post->id;        $comment->text = "comment #".rand(1, 1000);        $comment->save();                echo '

Comments

';                $comments = Test1comment::model()->findAll();        foreach($comments as $comment)        {            echo $comment->text."
";        }    }}
 
モデルphp
db2;    }}
 
モデルphp
db1;    }}
次に、コントローラのメソッドを実行します.すなわち、1つのコントローラメソッドで2つのデータベースを正常に操作します.