获取php中的mysql查询结果的计数

时间:2015-12-07 23:34:19

标签: php mysql

我想在php中获取mysql查询结果的计数。

查询通常最多返回10行。

以下哪一个更好用:

1

$query = "SELECT * FROM test_table WHERE test_no=12345";
$queryResult = $db->query($query);
$count = $queryResult->size();
if($count < 5){}

2

$query = "SELECT COUNT(test) AS count FROM test_table WHERE test_no=12345";
$queryResult = $db->query($query);
$result = $queryResult->fetch();
if($result['count'] < 5){}

另外,如果还有其他更好的使用方法,请告诉我

3 个答案:

答案 0 :(得分:1)

让MySQL处理行计数可能更好。当大量数据发挥作用时,这一点更为重要。如果PHP负责计算行数,那么所有这些数据都需要从MySQL发送到PHP,只有PHP才能计算和计算。丢弃它。跳过中间人更好。因此SELECT COUNT(test)查询是您提供的两个选项中的首选查询。

答案 1 :(得分:1)

$query = 'SELECT COUNT(1) FROM test_table WHERE test_no=12345';
$queryResult = $db->query($query);
$count = $queryResult->fetchColumn();

假设您正在使用PDO,这是最好的方法。请勿在{{1​​}}中指定列名称,使用COUNT()*。然后使用1获取第一列的数据。

答案 2 :(得分:0)

如果您使用 PDO ,最好的方法是使用PDO的rowCount()方法。此方法返回查询返回的行数。 这是一个例子。

try
{
$s = $conn->execute("YOUR QUERY HERE");
$count = $s->rowCount();
}
catch(PDOException $e)
{
echo $e->getMessage();
}