我真正想知道的是我的查询是否返回结果,但实际的行计数值会很好。
示例:
$query = db_select('node', 'n');
$query->fields('n', array('nid', 'title', 'status'));
答案 0 :(得分:2)
您正在寻找:
在您的示例中,您可以使用:
$query = db_select('node', 'n');
$query->fields('n', array('nid', 'title', 'status'));
$num_rows=$query->countQuery()->execute()->fetchField();
计算结果,然后再获取结果:
$result=$query->execute();
答案 1 :(得分:1)
您可以使用查询的方便fetchAll()
方法将所有结果加载到数组中,然后将数组计为正常值。这将导致只执行一个查询:
$query = db_select('node', 'n');
$query->fields('n', array('nid', 'title', 'status'));
$results = $query->execute()->fetchAll();
$count = count($results);
foreach ($results as $result) {
// ...
}
答案 2 :(得分:0)
我认为这样做会更有效率。
$result = db_select('table_name' ,'t');
$result->fields('t')->execute();
$num_of_results = $result->rowCount();