配置app() - > db;

时间:2016-03-08 02:47:37

标签: php yii

我有这个功能:

function getCompensation($id)
{
    $dbh = app()->db;
    try {
        $amount = $dbh->createCommand()
        ->select('data')
        ->from('compensation_table')
        ->where('id = :id', array(':id'=>$id))
        ->queryRow();
    }catch (Exception e) 
        $e->getMessage();
    {
     return $amount;
}

然而,似乎app() - > db;不会表现得如此,因为我没有得到任何数据。我在另一个项目中使用相同的方法,但我不确定它是如何配置的。我想连接到同一个数据库。我们可以在函数内配置它吗?

1 个答案:

答案 0 :(得分:1)

您必须指定$ amount = Yii :: app() - > db-> createCommand()

function getCompensation($id)
{

    try {
        $amount = Yii::app()->db->createCommand()
        ->select('data')
        ->from('compensation_table')
        ->where('id = :id', array(':id' =>$id))
        ->queryRow();
    }catch (Exception e) 
        $e->getMessage();
    {
     return $amount;
}

如果你有一个'数据'列

您可以使用例如:

访问该列
 echo $amount->data;

这是

中组件中db部分的示例
proteteced/config/main.php 

.....
return array(


    ....

    // application components
    'components'=>array(
       ......

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