有没有什么动态的方法来代替使用sqlite:f:\\wamp\\www\\qdr\\protected\\data\\testdrive.db in main.php来建立sqlite数据库连接?
'db'=>array(
'connectionString'=>'sqlite:f:\\wamp\\www\\qdr\\protected\\data\\testdrive.db',
),发布于 2013-04-11 17:45:09
Sql lite是关于单个文件的,所以你可以像这样保存它。不需要动态。我确信您正在使用wamp。就这样留着吧。这是最适合您的解决方案。当您将项目移动到实时服务器时,然后进行相应的更改。Sqlite是一个单独的文件,所以不要太麻烦。
发布于 2013-04-11 16:02:58
这取决于你对动态这个模糊术语的理解。但是,例如,您可以创建自定义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。
但是请注意,只有在第一次访问db组件时才会调用init()方法。因此,无论您将其设置为connectionString,都将用于当前请求。
https://stackoverflow.com/questions/15943173
复制相似问题