MySQLi计数(*)总是返回1
我试图计算表中的行数,并认为这是做到这一点的正确方法:
$result = $db->query("SELECT COUNT(*) FROM `table`;"); $count = $result->num_rows;
但计数总是返回(int)1
。 如果我在phpMyAdmin中使用相同的查询,我会得到正确的结果。 它坐在一个表中,所以我也试着testing$count[0]
,但是返回NULL
。
什么是正确的方法来做到这一点?
您必须获取该logging,它将包含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();
我发现这种方式更可读:
$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";
不是我有任何反对arrays…
这对我很好。
// 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";
$ result-> NUM_ROWS; 仅返回受查询影响的行数。 当你在一个表上执行一个计数(*)时,它只返回一行,所以你不能得到比1更多的结果。