打印出 SQL 单个查询 (Yii 1.x)
Print out a SQL single query (Yii 1.x)
我有一个使用 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 的 'logging' 功能来查看查询,是否可以只回显这个单个查询(而不是让 Yii 向我显示大量其他正在处理的查询 运行 在页面上)。
Add this in your config file. You can see the query and other details
at the bottom of the page.
'db'=>array(
'enableProfiling'=>true,
'enableParamLogging' => true,
),
'log'=>array(
'class'=>'CLogRouter',
'routes'=>array(
…
array(
'class'=>'CProfileLogRoute',
'levels'=>'profile',
'enabled'=>true,
),
),
),
您可以使用 $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
将 return 您的完整查询文本
我有一个使用 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 的 'logging' 功能来查看查询,是否可以只回显这个单个查询(而不是让 Yii 向我显示大量其他正在处理的查询 运行 在页面上)。
Add this in your config file. You can see the query and other details at the bottom of the page.
'db'=>array(
'enableProfiling'=>true,
'enableParamLogging' => true,
),
'log'=>array(
'class'=>'CLogRouter',
'routes'=>array(
…
array(
'class'=>'CProfileLogRoute',
'levels'=>'profile',
'enabled'=>true,
),
),
),
您可以使用 $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
将 return 您的完整查询文本