我正在開發一個應用程序,它可以掃描/檢索/在www.linkbook.co
Yii的PHP:讀/寫數據的動態數據庫連接
現在監控某些網站
的應用程序是免費的,我會解釋一下我想做:
我有一個主要的數據庫,存儲的網站,網站上發現的網址和url模式從每個網站;該網站知道他已分配到的Db,該網址知道網站ID;
因爲我有2 GB/DB的限制,我需要輔DB。
我全部從http://www.yiiframework.com/wiki/123/multiple-database-support-in-yii/以及谷歌能找到的東西中讀到,並且沒有一個使用dinamicaly連接的完整示例;
因此,每當我的應用程序掃描一個網站時,找到的每個網址都會被插入到主數據庫中,並且也會被分配到該網址所屬網站的數據庫中。
及時,主數據庫中的數據被刪除,但仍在輔助數據庫中可用。
所以,只有HOT信息被存儲在主,但他們仍然在二級分貝的
的Yii的傢伙保存舉這個例子,但我需要一個參數,從1到N,N = 1>無限,爲了切換到正確的DB。
class MyActiveRecord extends CActiveRecord {
...
private static $dbadvert = null;
protected static function getAdvertDbConnection()
{
if (self::$dbadvert !== null)
return self::$dbadvert;
else
{
self::$dbadvert = Yii::app()->dbadvert;
if (self::$dbadvert instanceof CDbConnection)
{
self::$dbadvert->setActive(true);
return self::$dbadvert;
}
else
throw new CDbException(Yii::t('yii','Active Record requires a "db" CDbConnection application component.'));
}
}
...
$ dbadvert需要動態,這是我的問題。
此外,從輔助數據庫的表不完全相同,因爲我不需要所有表中的所有字段,並且一些表也會丟棄,所以我需要一個模型;
模型我可以寫它,這並不難,我只是刪除一些領域;
這是我現在,只是插入,在一個特定的DB,DB1又名linkbookco1
$command = Yii::app()->db1->createCommand("INSERT INTO `url` (
`id` ,
`website_id` ,
`link` ,
`name` ,
`created` ,
`instance_scanner_id` ,
`status`
)
VALUES (
NULL , '".($model_url->website_id)."', '".($model_url->link)."', '".($model_url->name)."', '".($model_url->created)."', '".($model_url->instance_scanner_id)."', '".($model_url->status)."'
);
");
$command->query();
DB1和它的PARAMS在配置文件中提到的那樣,警予開發商說;
這可能會幫助你一點http://www.yiiframework.com/wiki/200/sub-domains-with-different-databases-in-yii/ – SuVeRa
不是真的,他仍然有每個db連接1個文件。我不想那 –