2016-08-16 83 views
0

有时候我想获得的查询结果的数量,我常常用mysqli_num_rows要做到这一点,例如之间的差异:有mysqli_num_rows和SELECT COUNT(*)

$count = mysqli_query($this->db,"SELECT * FROM `test`"); 
return mysqli_num_rows($count); 

有了数:

$count = mysqli_query($this->db, "SELECT COUNT(*) as cnt FROM test"); 
$row = mysqli_fetch_assoc($count); 
return $row['cnt']; 

这两种方法获得返回的行数有什么区别吗?

回答

3

是的。

前者不应该被使用,因为它会从数据库中选择所有的表数据并将其发送到PHP,在此过程中阻塞服务器。

虽然后者是选择和发送一个单一的号码。

+0

好的,所以第二个在速度方面更快。 – Piqka

+0

@Piqka不仅更快;它也更安全。如果您尝试在大表中使用'mysqli_num_rows()',可能会导致服务器崩溃 – Barranka