Yii2 console commands

Hello, I have one big issue regarding console commands, so

I have easy console command stored in app/commands/TaskController.php




<?php

namespace app\commands;


use yii\console\Controller;

use app\models\FinishedTasks;


class TaskController extends Controller

{	

	

	public function actionDonwloadTasks(){

		$connection = \Yii::$app->db;

		print_R($connection);


		$zz = FinishedTasks::findOne(['id' => 3]);		

		print_r($zz);

	}

	

}



I execute it via console like:


D:\UwAmp\bin\php\php-5.5.15\php.exe yii task/donwload-tasks

And console response me this:


yii\db\Connection Object

(

    [dsn] => mysql:host=127.0.0.1;dbname=table_name

    [username] => root

    [password] => xxxxxxx

    [attributes] =>

    [pdo] =>

    [enableSchemaCache] =>

    [schemaCacheDuration] => 3600

    [schemaCacheExclude] => Array

        (

        )


    [schemaCache] => cache

    [enableQueryCache] => 1

    [queryCacheDuration] => 3600

    [queryCache] => cache

    [charset] => utf8

    [emulatePrepare] =>

    [tablePrefix] =>

    [schemaMap] => Array

        (

            [pgsql] => yii\db\pgsql\Schema

            [mysqli] => yii\db\mysql\Schema

            [mysql] => yii\db\mysql\Schema

            [sqlite] => yii\db\sqlite\Schema

            [sqlite2] => yii\db\sqlite\Schema

            [sqlsrv] => yii\db\mssql\Schema

            [oci] => yii\db\oci\Schema

            [mssql] => yii\db\mssql\Schema

            [dblib] => yii\db\mssql\Schema

            [cubrid] => yii\db\cubrid\Schema

        )


    [pdoClass] =>

    [enableSavepoint] => 1

    [serverStatusCache] => cache

    [serverRetryInterval] => 600

    [enableSlaves] => 1

    [slaves] => Array

        (

        )


    [slaveConfig] => Array

        (

        )


    [masters] => Array

        (

        )


    [masterConfig] => Array

        (

        )


    [_transaction:yii\db\Connection:private] =>

    [_schema:yii\db\Connection:private] =>

    [_driverName:yii\db\Connection:private] =>

    [_slave:yii\db\Connection:private] =>

    [_queryCacheInfo:yii\db\Connection:private] => Array

        (

        )


    [_events:yii\base\Component:private] => Array

        (

        )


    [_behaviors:yii\base\Component:private] =>

)

Exception 'yii\db\Exception' with message 'could not find driver'


in D:\trunk\app\vendor\yiisoft\yii2\db\Connection.php:534


Stack trace:

#0 D:\trunk\app\vendor\yiisoft\yii2\db\Connection.php(836): yii\db\Connection->open()

#1 D:\trunk\app\vendor\yiisoft\yii2\db\Connection.php(823): yii\db\Connection->getMasterPdo()

#2 D:\trunk\app\vendor\yiisoft\yii2\db\Command.php(206): yii\db\Connection->getSlavePdo()

#3 D:\trunk\app\vendor\yiisoft\yii2\db\Command.php(819): yii\db\Command->prepare(true)

#4 D:\trunk\app\vendor\yiisoft\yii2\db\Command.php(363): yii\db\Command->queryInternal('fetch', N

ULL)

#5 D:\trunk\app\vendor\yiisoft\yii2\db\Query.php(243): yii\db\Command->queryOne()

#6 D:\trunk\app\vendor\yiisoft\yii2\db\ActiveQuery.php(285): yii\db\Query->one(NULL)

#7 D:\trunk\app\vendor\yiisoft\yii2\db\BaseActiveRecord.php(101): yii\db\ActiveQuery->one()

#8 D:\trunk\app\commands\TaskController.php(22): yii\db\BaseActiveRecord::findOne(Array)

#9 [internal function]: app\commands\TaskController->actionDonwloadTasks()

#10 D:\trunk\app\vendor\yiisoft\yii2\base\InlineAction.php(55): call_user_func_array(Array, Array

)

#11 D:\trunk\app\vendor\yiisoft\yii2\base\Controller.php(151): yii\base\InlineAction->runWithPara

ms(Array)

#12 D:\trunk\app\vendor\yiisoft\yii2\console\Controller.php(91): yii\base\Controller->runAction('

donwload-tasks', Array)

#13 D:\trunk\app\vendor\yiisoft\yii2\base\Module.php(455): yii\console\Controller->runAction('don

wload-tasks', Array)

#14 D:\trunk\app\vendor\yiisoft\yii2\console\Application.php(161): yii\base\Module->runAction('ta

sk/donwload-t...', Array)

#15 D:\trunk\app\vendor\yiisoft\yii2\console\Application.php(137): yii\console\Application->runAc

tion('task/donwload-t...', Array)

#16 D:\trunk\app\vendor\yiisoft\yii2\base\Application.php(375): yii\console\Application->handleRe

quest(Object(yii\console\Request))

#17 D:\trunk\app\yii(23): yii\base\Application->run()

#18 {main}

I tried many ways already, but still have "could not find driver" error! Maybe someone know how to fix it?

I use UwAmp 3.0.2, Windows 8.1. Maybe this will work on linux server?

but all other website, if its not started via console works fine, no errors received, db requests works properly

You are given all the info you need - your console PHP is not compiled with PDO driver. I’m not familiar with UwAmp so I cannot tell you how to set it up. Check CLI php.ini file.

Ha, look at that, SO for the rescue:

  1. Make sure proper pdo* driver is enabled using the GUI

  2. Find uwamp-directory/php/php-x.x.x/php_uwamp.ini

  3. Copy it to php.ini in the same directory

this problem was regarding uwAmp, if I use any other webserver on windows commands work properly