我有一个使用CDbCriteria生成的大量查询,如下所示:-
$schema = Yii::app()->db->schema;
$builder = $schema->commandBuilder;
// how to echo out this query?
$command = $builder->createFindCommand($schema->getTable('myuser'), $criteria);
$results = $command->queryAll();
我知道我可以使用Yii的"日志记录"功能来查看查询,是否有可能只是回显这个查询(而不是让Yii显示大量正在页面上运行的其他查询)。
您可以使用$command->text
打印查询生成器生成的查询。在您的示例代码中将是:
$schema = Yii::app()->db->schema;
$builder = $schema->commandBuilder;
$criteria = new CDbCriteria();
$command = $builder->createFindCommand($schema->getTable('name_of_table'), $criteria);
$results = $command->text;
echo $results;
$command->text
将返回完整的查询文本
将此添加到配置文件中。您可以看到查询和其他详细信息在这一页的底部。
'db'=>array(
'enableProfiling'=>true,
'enableParamLogging' => true,
),
'log'=>array(
'class'=>'CLogRouter',
'routes'=>array(
…
array(
'class'=>'CProfileLogRoute',
'levels'=>'profile',
'enabled'=>true,
),
),
),