我有以下代码从db获取一些记录
$criteria = new CDbCriteria(); $criteria->condition = 't.date BETWEEN "'.$from_date.'" AND "'.$to_date.'"'; $criteria->with = array('order'); $orders = ProductOrder::model()->findAll($criteria);
您可以将执行的查询记录在应用程序日志中并进行审查.在配置文件中这样的东西:
'components' => array( 'db'=>array( 'enableParamLogging' => true,),'log'=>array( 'class'=>'CLogRouter','routes'=>array( array( 'class'=>'CFileLogRoute','levels'=>'trace,log','categories' => 'system.db.CDbCommand','logFile' => 'db.log',);
在某些情况下(例如运行测试时),您还需要调用Yii :: app() – > log-> processLogs(null);在这个工作的最后阶段.
当然,一旦你没有什么阻止你编写自己的日志路由,它与记录的消息不同,但是请记住在请求结束时处理日志(或者当你调用processLogs时),而不是每次你记录一些东西
顺便说一下,您不应该在查询中使用动态输入来构建这样的查询.改用绑定变量:
$criteria = new CDbCriteria(); $criteria->condition = 't.date BETWEEN :from_date AND :to_date'; $criteria->params = array( ':from_date' => $from_date,':to_date' => $to_date,); $criteria->with = array('order'); $orders = ProductOrder::model()->findAll($criteria);