Yii Database Connection

Most Web applications have the databases. We have to configure the database details in protected/cofig/main.php to use the database. Here i explained with two types of database connectivity. They are application configuration connection, CDbConnection .

Application Configuration (config/main.php)

Sqlite Database

To connect the sqlite db with application, we need the directory details of database.

'db'=>array(
    'connectionString' => 'sqlite:'.dirname(__FILE__).'/../data/testdrive.db',
),

Mysql Database

To connect the mysql db with application, we need the hosting details, database name, username, and password.

'db'=>array(
        'connectionString' => 'mysql:host=localhost;dbname=testmysql',
        'emulatePrepare' => true,
        'username' => 'root',
        'password' => '',
        'charset' => 'utf8',
        ),

Excute Query


$user = Yii::app()->db->createCommand()
        ->select('username, password')
        ->from('tbl_user')
        ->where('id=:id', array(':id'=>1))
        ->queryRow();

CDbConnection

CDbConnection represents a connection to a database. We have to set 1 for "active", After we initialized CDbConnection. See below code for understanding How to create a CDbConnection

$connection=new CDbConnection($dsn,$username,$password);
$connection->active=true;

Excute Query


$sqlStatement="select username, password from tbl_user where id=:id limit 1";
$command=$connection->createCommand($sqlStatement);
$command->bindParam(':id',$userid);
$command->execute();   // a non-query SQL statement execution
$user=$command->query();