Environment:
Bitnami WAPP5.6 (windows,apache,php,postgresql)
Yii1.1.16
Database connection is working fine from web application(Same code is working in web application) but when we tried to connect database from console application is not working.
PS F:\WAPP\apache2\htdocs\testdrive\protected> .\yiic sitemap
exception 'CDbException' with message 'CDbConnection failed to open the DB connection: could not find driver' in F:\WAPP\apache2\htdocs\yii-1.1.16.bca042\framework\db\CDbConnection.php:399
Stack trace:
#0 F:\WAPP\apache2\htdocs\yii-1.1.16.bca042\framework\db\CDbConnection.php(347): CDbConnection->open()
#1 F:\WAPP\apache2\htdocs\yii-1.1.16.bca042\framework\db\CDbConnection.php(325): CDbConnection->setActive(true)
#2 F:\WAPP\apache2\htdocs\yii-1.1.16.bca042\framework\base\CModule.php(394): CDbConnection->init()
#3 F:\WAPP\apache2\htdocs\yii-1.1.16.bca042\framework\base\CModule.php(103): CModule->getComponent('db')
#4 F:\WAPP\apache2\htdocs\testdrive\protected\commands\SitemapCommand.php(16): CModule->__get('db')
#5 [internal function]: SitemapCommand->actionIndex()
#6 F:\WAPP\apache2\htdocs\yii-1.1.16.bca042\framework\console\CConsoleCommand.php(172): ReflectionMethod->invokeArgs(Object(SitemapCommand), Array)
#7 F:\WAPP\apache2\htdocs\yii-1.1.16.bca042\framework\console\CConsoleCommandRunner.php(71): CConsoleCommand->run(Array)
#8 F:\WAPP\apache2\htdocs\yii-1.1.16.bca042\framework\console\CConsoleApplication.php(92): CConsoleCommandRunner->run(Array)
#9 F:\WAPP\apache2\htdocs\yii-1.1.16.bca042\framework\base\CApplication.php(184): CConsoleApplication->processRequest()
#10 F:\WAPP\apache2\htdocs\yii-1.1.16.bca042\framework\yiic.php(33): CApplication->run()
#11 F:\WAPP\apache2\htdocs\testdrive\protected\yiic.php(7): require_once('F:\\WAPP\\apache2...')
#12 {main}
protected/commands/SitemapCommand.php
class SitemapCommand extends CConsoleCommand
{
public function actionIndex()
{
$connection=Yii::app()->db;
$sql = "INSERT INTO public.tbl_employees (first_name, last_name, address, age,mobile) VALUES ('Mike111', 'Pompeo', 'DC',50,587465245)";
$command=$connection->createCommand($sql);
$rowCount=$command->execute(); // execute the non-query SQL
print_r($rowCount);
}
public function actionInit()
{
}
}
protected/config/console.php
// This is the configuration for yiic console application.
// Any writable CConsoleApplication properties can be configured here.
return array(
'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..',
'name'=>'My Console Application',
// preloading 'log' component
'preload'=>array('log'),
// application components
'components'=>array(
// database settings are configured in database.php
'db'=>require(dirname(__FILE__).'/database.php'),
'log'=>array(
'class'=>'CLogRouter',
'routes'=>array(
array(
'class'=>'CFileLogRoute',
'levels'=>'error, warning',
),
),
),
),
);
protected/config/database.php
<?php
// This is the database connection configuration.
return array(
'tablePrefix'=>'',
'connectionString' => 'pgsql:host=127.0.0.1;port=5432;dbname=postgres',
'username'=>'postgres',
'password'=>'pass',
'charset'=>'UTF8',
);