Skip to main content

How to Use Two Database in Yii PHP Framework

Recently in one of Ireland based project client has requirement to use existing Microsoft SQL Server database and implement new feature and store data into MySQL database with Yii Framework.

First we have install and implement microsoft sql server driver in wamp server to make in localhost environment. Now we have to connect both the Database in Yii Framework. Following is steps to implement in Yii Framework :

1. In protected/config folder open main.php and add below code in component for mysql and sql server connection
'db'=>array(  // default mysql connection
 'connectionString' => 'mysql:host=localhost;port=3306;dbname=db_name',
 'emulatePrepare' => true,
 'username' => 'db_username',
 'password' => 'db_password',
 'charset' => 'utf8',
 'tablePrefix' =>'tbl_',  // if have prefix in database tables
),
'msdb'=>array( // microsoft sql server connection
 'class' => 'CDbConnection',
 'connectionString' => 'sqlsrv:Server=host_name or ip_address;Database=db_name',
 'username' => 'db_username',
 'password' => 'db_password',
 'charset' => 'GB2312',
),   

2. Now sql server connection is available in your entire application and access by CDbCommand
$company_name=Yii::app()->msdb->createCommand("SELECT TOP 1 CompanyName from Company_Details WHERE CompanyID="ezeelive")->queryRow();
if(isset($company_name) && !empty($company_name["CompanyName"])):
 echo $company_name["CompanyName"]; // it will print company name Ezeelive Technologies
else:
 echo '';
endif; 

In above example we have use msdb define database connection in component

3. Sometime we require to get the data from one table and insert into another database table, In this case you can use createCommand to write custom loop or you can Switch database connection runtime in model class
class Company extends CActiveRecord
{
 public function init()
 {
 $this->attachEventHandler('OnBeforeSave',   array($this,'switchToWriter'));
 $this->attachEventHandler('OnAfterSave',   array($this,'switchToReader'));
 }
 public function switchToWriter()
 {
 self::$db=Yii::app()->db;
 return true;
 }
 public function switchToReader()
 {
 self::$db=Yii::app()->msdb;
 return true;
 }
 //...
}    

In above example database connection will swapping means the connection will automatically change in fetching and inserting time. "switchToReader" function for fetching the data from SQL Server database and "switchToWriter" for insert/save data into MySQL database.

Please fill free to contact us on info@ezeelive.com or leave a comment for any type of development, integration and coding problem. Keep Coding...!!

Comments

Popular posts from this blog

Why Ezeelive Technologies is No. 1 PHP Development Company in India

The virtual world knows absolutely no boundaries when it comes to evolution and growth. If you have a business and are planning for expansion, social media advertising is the best option available to reach the mass. For this, the most common and effective medium is a website. The moment you think of a website, the first thought that hits your mind is the requirement of a PHP Development Company . Now the issue is sensitive and needs your keenest attention as the market image and popularity of your firm is involved. There is no need to worry as E zeelive Technologies   is here to solve your problem with its expertise in PHP development. To explore more about the matter, read ahead. Why choose Ezeelive Technologies for PHP Development? If you want the best and the easiest for you and your customers, here is your destination. Yes, Ezeelive Technologies is a pioneer in PHP development and is a name famous for its excellent services in the field. As you know, associating with...

Best LMS Development Company in India

Technological development has profoundly altered learning management system through time, generate equally profound change in the field of learning. several inspiring trend in this field comprise Cloud-based LMS, Tin Can API, MOOCs, Personalized Learning Environment as well as Bring Your Own Device (BYOD). With so much info easily accessible from manifold sources in the cloud, learners would take more and more control of their own learning, altering the role of learning professional, departments and software. New generation Learning management systems (LMS) are getting sleeker as well as more streamlined to allow Blended Learning, teamwork, synchronous (virtual) in addition to informal learning. LMSs developed by Best LMS Development Company in India host learning as well as development programs in flourishing social systems. Their offerings are intended to suit your industry needs without burning a hole in your pocket. LMS Development Company are devoted to providing solu...

Advantages of Web Application Development

Web application  is an application that is accessed over a network such as the Internet or an intranet . The term may also mean a computer software application that is coded in a browser-supported language (such as  JavaScript , combined with a browser-rendered markup language like HTML) and reliant on a common web browser to render the application executable. 1. it is cheaper to implements. For example, if you develop application with .NET you need to have clients that install windows. but in  web application , once you develop, any client can access your  web apps with any platform . 2.  web app development  are simple (once you know about  css javascript and framework ) it can make your life easier. 3. No virus and easy to deploy/install for client. 4. Only one copy of a program will ever need to be updated. 5. 99% of the code is platform independant. 6. Less chance of finding restrictions that the clients computer may have imposed...