如何在YII中更改数据库连接

时间:2014-05-02 00:36:40

标签: php mysql yii

我有yii应用程序,我想更改数据库连接.. 首先,我的应用程序连接到'trackstar'数据库,后来我想更改为'taskmanagement'数据库..

所以我只需在代码中更改dbname:

    <?php

// This is the configuration for yiic console application.
// Any writable CConsoleApplication properties can be configured here.
return array(
    'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..',
    'name'=>'My Console Application',
    // application components
    'components'=>array(
         'db'=>array(
            'connectionString' => 'mysql:host=localhost;dbname=taskmanagement',
            'emulatePrepare' => true,
            'username' => 'root',
            'password' => '',
            'charset' => 'utf8',
        ),
        'authManager'=>array(
            'class'=>'CDbAuthManager',
            'connectionID'=>'db',
            'itemTable' => 'tbl_auth_item',
            'itemChildTable' => 'tbl_auth_item_child',
            'assignmentTable' => 'tbl_auth_assignment',
        ),
    ),
);

但是当我运行应用程序时出现错误:

  

CDbCommand无法执行SQL语句:SQLSTATE [42S02]: Base   未找到表格或视图:1146表'trackstar.tbl_auth_assignment '   不存在。执行的SQL语句是:SELECT * FROM   tbl_auth_assignment       WHERE userid =:userid

我不明白的是,为什么仍然连接到trackstar数据库,尽管我只是将dbname更改为taskmanagement

之前的事情:)

2 个答案:

答案 0 :(得分:2)

我猜你的模型查询是一个直接的SQL查询。

EX:

 SELECT * FROM databaseName.tableName 

因此,即使您更改配置文件中的数据库名称,这些类型的查询也可能无效。请以这种方式检查您的代码。

答案 1 :(得分:1)

您只需配置 console.php 配置。但是Yii Web应用程序使用 main.php

检查 main.php 文件

它位于您的应用文件夹 - &gt;受保护 - &gt; config - &gt; main.php

更改此文件上的Db连接