怎样查看执行过的SQL语句?

$n=Pic::model()->count(‘file_md5=:file_md5',array(':file_md5'=>'462cbf72b5301feaf60f6eb5e69f291d'));

我在main.php里加入以下代码,以便显示出执行过的SQL语句:

				array(


                    'class'=>'CWebLogRoute',


                    'levels'=>'trace',


                ),

可是,显示出来的是:

query with SQL: SELECT COUNT(*) FROM images WHERE file_md5=:file_md5

上面并没有显示查询语句中的:file_md5的值到底是什么,所以没法查错

我怎样才能查看到真正的SQL语句呢?

这个就是你目前能看到的结果了,因为参数是动态绑定的。我们将在1.0.5考虑加入显示要绑定的参数值。

强烈建议显示参数值

已经实现了。把CDbConnection::enableParamLogging设成true就可以了。你可以在app config设置,或在程序里动态设置。注意,这有可能影响你网站的性能。所以最好只在开发时使用。

Quote

已经实现了。把CDbConnection::enableParamLogging设成true就可以了。你可以在app config设置,或在程序里动态设置。注意,这有可能影响你网站的性能。所以最好只在开发时使用。

这是个好消息!调试Sql更方便了!谢谢Qiang!

新问题:现在显示的是每个步骤开始执行的时间,能不能改成显示每个步骤所花费的时间?

Quote

新问题:现在显示的是每个步骤开始执行的时间,能不能改成显示每个步骤所花费的时间?

你可以试试log 里的 profile

Quote

Quote

新问题:现在显示的是每个步骤开始执行的时间,能不能改成显示每个步骤所花费的时间?

你可以试试log 里的 profile

这样要手工在每个地方添加吧?比较麻烦。

请创建一个ticket。谢谢.

已经实现了。设置CDbConnection.enableProfiling=true.

Qiang,动作好快啊!

好功能!顶!

;D ;D支持一下 … 很久没上来看过了 哈哈 一直忙着用yii 开发

手头上两个项目都是用的yii ,  持续关注…yii 中… 

感谢开发团队…