而不是做:
$cars = $mysqli->query("SELECT * FROM cars"); $count = $cars->num_rows(); if ($count) { // is rows }
我不想选择所有行或单个列,我只想计数。在我的脑海里:
$cars = $mysqli->query("SELECT COUNT(*) as count FROM cars");
那么,如何使用该计数值呢?如何在PHP中获取COUNT(*)的结果?
COUNT(*)
f4t66c6m1#
不建议在SQL中对名称使用保留字。所以我将计数结果称为cnt。因为你的函数是标量的,即如果你只期望返回一个值,你可以用途:
$count = $mysqli->query("select count(*) as cnt from cars")->fetch_object()->cnt;
7z5jn7bk2#
选择查询始终返回结果集。要进行计数,请使用fetch_row()
fetch_row()
$result = $db->query("SELECT COUNT(*) FROM `cars`"); $cars= $result->fetch_row(); echo '#: ', $cars[0];// or use $c= $cars[0];
2cmtqfgy3#
您需要获取结果的第一行,并查看'count'列的值:
$cars = $mysqli->query("SELECT COUNT(*) as count FROM cars"); $firstrow = $cars->fetch_assoc(); if ($firstrow['count'] > 0) { // ... }
92dk7w1h4#
如果result是一个对象,则:
$cars = $mysqli->query("SELECT count(*) as count FROM cars"); $carRows = $cars->result(); echo $carRows[0]->count;
如果你返回数组,那么:
$cars = $mysqli->query("SELECT count(*) as count FROM cars"); $carRows = $cars->result_array(); echo $carRows[0]['count'];
6gpjuf905#
您有许多选项可用于从SQL获取计数。如果你已经在使用PHP 8.1,最简单的方法是:
$count = $mysqli->query("SELECT COUNT(*) FROM cars")->fetch_column();
以下是其他可能的方法列表:
$count = $mysqli->query("SELECT COUNT(*) as count FROM cars")->fetch_array()['count'];
$count = $mysqli->query("SELECT COUNT(*) FROM cars")->fetch_array()[0];
$count = $mysqli->query("SELECT COUNT(*) as count FROM cars")->fetch_object()->count;
很重要的一点。如果你需要在查询中使用变量输入,那么你应该使用预处理语句。为了得到计数,它看起来像这样:
$stmt = $mysqli->prepare("SELECT COUNT(*) FROM cars WHERE category=?"); $stmt->bind_param('s', $category); $stmt->execute(); $count = $stmt->get_result()->fetch_row()[0];
5条答案
按热度按时间f4t66c6m1#
不建议在SQL中对名称使用保留字。所以我将计数结果称为cnt。因为你的函数是标量的,即如果你只期望返回一个值,你可以用途:
7z5jn7bk2#
选择查询始终返回结果集。要进行计数,请使用
fetch_row()
2cmtqfgy3#
您需要获取结果的第一行,并查看'count'列的值:
92dk7w1h4#
如果result是一个对象,则:
如果你返回数组,那么:
6gpjuf905#
您有许多选项可用于从SQL获取计数。
如果你已经在使用PHP 8.1,最简单的方法是:
以下是其他可能的方法列表:
很重要的一点。如果你需要在查询中使用变量输入,那么你应该使用预处理语句。为了得到计数,它看起来像这样: