我想在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){}
另外,如果还有其他更好的使用方法,请告诉我
答案 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();
}