最新消息: 新版网站上线了!!!

Yii框架查看原生态sql的实现方法

今天在使用YII框架做开发的时候,发现一条SQL语句没有执行成功,想查看下执行的是什么语句,以便调试下看看是哪里出了问题.可是找了半天竟然也找不到执行的是哪条SQL语句,于是到网上查了一下终于弄明白了.现在就把如何查看在YII框架中被执行的SQL语句的方法分享给大家.

首先在YII的配置文件里,数据库的配置那一段增加如下两个配置.

 

'components' => array(

    'db' => array(

        'connectionString' => 'mysql:host=localhost;dbname=test',

        'username' => 'test',

        'password' => 'sxaskdljfjrfnmczd',

        'enableProfiling' => true,    //配置1

        'enableParamLogging' => true,    //配置2

    ),

),

接着在日志配置那一段修改为如下配置

'components' => array(

    'log' => array(

        'class' => 'CLogRouter',

        'routes' => array(

            array(

                'class'=>'CProfileLogRoute',

                'levels'=>'profile',    //这里是记录运行的级别日志,可选notice,error,trace,log,profile等

                //'showInFireBug' => true,

                'categories'=>'system.db.CDbCommand.query'

            ),

        ),

    ),

),

showInFireBug这个选项为是否在firebug里面查看运行日志记录.如果不设置的话,那默认就是在页面的底部显示,如果设置了,就在打开的firebug里面查看.

再有朋友可能不知道YII的记录日志是在什么地方.当然前提是你已经把日志记录到文件中,具体设置方法为

'log'=>array(

  'class'=>'CLogRouter',

  'routes'=>array(

    array(

      'class'=>'CFileLogRoute',

      'levels'=>'trace,log',

      'categories' => 'system.db.CDbCommand',

      'logFile' => 'db.log',

    ),

  ),

),

这里设置的日志记录文件为:protected/runtime/db.log 日志的记录,显示方式可以设置多种均可以生效.

 

转载请注明:谷谷点程序 » Yii框架查看原生态sql的实现方法