我想算表中的行数,并认为这是应该做的是正确的方法:库MySQLi COUNT(*)始终返回1
$result = $db->query("SELECT COUNT(*) FROM `table`;");
$count = $result->num_rows;
但数总是返回(int)1
。如果我在phpMyAdmin中使用相同的查询,我会得到正确的结果。它坐在一张桌子里,所以我试着测试$count[0]
,但是它返回NULL
。
这样做的正确方法是什么?
我想算表中的行数,并认为这是应该做的是正确的方法:库MySQLi COUNT(*)始终返回1
$result = $db->query("SELECT COUNT(*) FROM `table`;");
$count = $result->num_rows;
但数总是返回(int)1
。如果我在phpMyAdmin中使用相同的查询,我会得到正确的结果。它坐在一张桌子里,所以我试着测试$count[0]
,但是它返回NULL
。
这样做的正确方法是什么?
你必须获取一个记录,它将包含COUNT()的结果
$result = $db->query("SELECT COUNT(*) FROM `table`");
$row = $result->fetch_row();
echo '#: ', $row[0];
总是尝试做一个关联回来,你在多的情况下结果
想要的方式,您可以轻松获取下面是一个例子
$result = $mysqli->query("SELECT COUNT(*) AS cityCount FROM myCity")
$row = $result->fetch_assoc();
echo $row['cityCount']." rows in table myCity.";
$result->close();
好奇你是什么意思的多个案件的结果?使用case语句选择多个计数? – 2012-08-02 14:47:09
$ result-> NUM_ROWS;只返回受查询影响的行数。当你在表上执行COUNT(*),它只返回一行,所以你不能有其他结果大于1
不正确。 mysqli_result :: $ num_rows返回结果集的行数。 mysqli :: $ affected_rows返回查询影响的行数。 – 2013-08-08 06:16:32
,我觉得这样更易于阅读:
$result = $mysqli->query('select count(*) as `c` from `table`');
$count = $result->fetch_object()->c;
$result->free();
$mysqli->close();
echo "there are {$count} rows in the table";
这并不是说我有任何对阵阵......
这对我很好。
// Veh Pro Count
$query_tvp = "SELECT count(*) as total from submit";
if ($result_tvp = $mysqli->query("$query_tvp")) {
/* determine number of rows result set */
$total_tvp = $result_tvp->fetch_row();
$total_tvp = $total_tvp['0'];
/* close result set */
$result_tvp->close();
}
echo "Total: $total_tvp";
可以用'$ mysqli_result-> NUM_ROWS;'见 - http://php.net/manual/en/mysqli-result.num-rows.php – 2017-11-15 02:02:12