我要执行命令SHOW FULL PROCESSLIST
$process = Yii::app()->db->createCommand("SHOW FULL PROCESSLIST");
$data = $process->query();
但是查询没有返回记录
最佳答案
使用 queryAll()
或 queryRow()
而不是 query()
,如下所示:
$process = Yii::app()->db->createCommand("SHOW FULL PROCESSLIST");
$data = $process->queryAll();
CVarDumper::dump($data); //will show you the result
在需要获取行的情况下,可以使用 queryRow()
,如下所示:
$process = Yii::app()->db->createCommand("SHOW FULL PROCESSLIST");
$data = $process->queryRow();
为了更熟悉差异,queryAll()
执行 SQL 语句并返回所有行,而 queryRow()
执行 SQL 语句并返回第一行结果。在前面,query()
返回CDbDataReader
对象而不是结果数组。如果您使用 query()
从上述查询中获取转储,您将看到以下结果:
CDbDataReader#1
(
[CDbDataReader:_statement] => PDOStatement#2
(
[queryString] => 'SHOW FULL PROCESSLIST'
)
[CDbDataReader:_closed] => false
[CDbDataReader:_row] => null
[CDbDataReader:_index] => -1
[CComponent:_e] => null
[CComponent:_m] => null
)
关于php - Yii 选择 mysql 进程列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26488000/