是否有任何动态方式来放置 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',
),
这取决于您在模糊术语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
都将用于当前请求。
Sql lite 是关于单个文件的,因此您可以像这样保留它。不需要动态。我确定你正在使用 wamp。就这样保持吧。这是最适合您的解决方案。当您将项目移动到实时服务器时,请进行相应更改。Sqlite 是一个单独的文件,所以不要那么麻烦。