Answers:
如果您查看db_result()
Drupal 6 的文档:
function db_result($result) {
if ($result && mysql_num_rows($result) > 0) {
// The mysql_fetch_row function has an optional second parameter $row
// but that can't be used for compatibility with Oracle, DB2, etc.
$array = mysql_fetch_row($result);
return $array[0];
}
return FALSE;
}
我还看到您可以在Drupal 6中做到这一点:
$num_rows = db_result(
db_query("SELECT COUNT(*) FROM {node} WHERE type = '%s'", $type->type)
);
看来您可以简单地做到:
// Execute your query.
$result = db_query($your_query);
// Use mysql_num_rows() on the result set.
$num_rows = mysql_num_rows($result);
这取决于在循环结果集之前是否需要行数。
如果以前需要,则通常使用SELECT COUNT(*)
与第一个查询相同的参数进行查询,并用于db_result()
检索它。
如果以后需要它,只需在循环中放入一个变量即可递增:
$result = db_query("SELECT nid, title FROM {node} WHERE status = 0");
$total_rows = 0;
while ($row = db_fetch_array($result)) {
//Process your results here
//Increment your counter
$total_rows++;
}
对于Drupal 7,您可以使用
$result = db_query($query);
$result->rowCount();
rowCount()
仅用于影响行的查询,例如INSERT / UPDATE / DELETE。见在讨论drupal.org/node/1286238