1

是否有任何动态方式来放置 sqlite 数据库连接而不是使用sqlite:f:\\wamp\\www\\qdr\\protected\\data\\testdrive.db in main.php

'db'=>array(
          'connectionString'=>'sqlite:f:\\wamp\\www\\qdr\\protected\\data\\testdrive.db',
),
4

2 回答 2

0

这取决于您在模糊术语dynamic下的理解。但是您可以例如创建您的自定义DBConnection类并init()在那里覆盖:

class DbConnection extends CDbConnection
{
    public function init()
    {
        // Set $this->connectionString to whatever you want, maybe
        // $this->connectionString = 'sqlite:'.dirname(__FILE__).'/../data/testdrive.db';
        parent::init();
    }
}

db如果添加,您可以将此组件用作组件

'class' => 'DbConnection',

到你的main.php.

但请注意,该init()方法仅在第一次db访问组件时被调用。因此,您设置的任何内容connectionString都将用于当前请求。

于 2013-04-11T08:02:58.423 回答
0

Sql lite 是关于单个文件的,因此您可以像这样保留它。不需要动态。我确定你正在使用 wamp。就这样保持吧。这是最适合您的解决方案。当您将项目移动到实时服务器时,请进行相应更改。Sqlite 是一个单独的文件,所以不要那么麻烦。

于 2013-04-11T09:45:08.877 回答