Yii2调试mysql查询或mysql_error等价

时间:2015-01-21 15:41:04

标签: php mysql pdo yii2

我在公共/模型中有一个名为ValuesHelper的模型助手,其中包含以下代码段:

 <?php
    namespace common\models;
    class ValueHelpers
    {
      /**
         * return the value of status by the its name string
         * example: 'Active'
         * @param string $status_name
         */
        public static function getStatusValue($sta8tus_name)
        {
            $connection = \Yii::$app->db;
            $sql = "SELECT id FROM status WHERE status_name=:status_name";      
            $command = $connection->createCommand($sql);
            $command->bindValue(':status_name', $status_name);  
// the issue in the next line   
            $result = $command->queryOne() or die($connection->getFirstError()."error");
            return $result['id'];
        }
    }

我不知道如何在mysql_error()子句中实现or die()。我试过了or die ($command->getFirstError()),但也失败了。顺便说一下,我故意设置错误的参数名$sta8tus来格式化创建错误的环境。

1 个答案:

答案 0 :(得分:2)

为什么不看日志而不是在那里放一个骰子?

另请看这里:http://www.yiiframework.com/doc-2.0/yii-db-command.html#queryOne()-detail 如果命令有问题,那么它会抛出异常。您必须捕获该异常并使用它,这是最佳实践。

所以做一个

try {
    $result = $command->queryOne();
} catch (yii\db\Exception $e) {
    do your stuff here
}