PDA

View Full Version : استفاده از 2 دیتابیس



Borland.C
پنج شنبه 25 دی 1393, 17:42 عصر
سلام
در فایل کانفیگ 2تا db تعریف کردم یکی اصلی و یکی دیگه کانکشن استرینگش به صورت داینامیک ساخته میشه.
رو ساختن کانکشن استرینگ و سویچ رو دیتابیس دوم تو اکتیو رکود مشکلی ندارم مسله وقتی که از کیوری بیلدر استفاده می کنم همون کانکشن استرینگ اولیه که تو فایل کانفیگ هست لود میشه !!!!!!!!!! :عصبانی++:

فایل کانفیگ


'db'=>array(
'connectionString' => 'mysql:host=localhost;dbname=mydb1',
'emulatePrepare' => true,
'username' => 'root',
'password' => '',
'charset' => 'utf8',
'class' => 'CDbConnection',
),
'db2' => array(
'connectionString' => 'mysql:host=localhost;dbname=mydb2',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
'tablePrefix' => '',
'autoConnect' => false,
'class' => 'CDbConnection',
),


----------------



public function getDbConnection()
{
if(self::$db!==null)
return self::$db;
else
{
$connectionString = 'mysql:host=localhost;dbname='.Yii::app()->params['activeDb'];
self::$db=new CDbConnection($connectionString, self::$user, self::$pass);
self::$db->charset = 'utf8';
if(self::$db instanceof CDbConnection)
{
self::$db->setActive(true);
return self::$db;
}
else
throw new CDbException(Yii::t('yii','Active Record requires a "db" CDbConnection application component.'));
}
}


extends کلاس های مدل هامم تغییر دادم.همونطور که گفتم با اکتیو رکورد مشکلی نیست اما خروجی زیر

echo Yii::app()->db2->createCommand()->connection->connectionString

mysql:host=localhost;dbname=mydb2

لطفا یکی 1راهی ÷یدا کنه

Borland.C
شنبه 27 دی 1393, 12:50 عصر
کسی تا به حال به این مورد برنخورده؟!!!