我想数清楚不。在我的表中,这就是我所做的。如果我在表演上做错了,请告诉我。
旧道
//I'm doing this to verify if the entered User name is correct.
$stmt = $conn->prepare("SELECT * FROM `users` WHERE `User` = ?");
$stmt->execute(array($user));
$Count = $stmt->rowCount();
echo $Count;在某些站点中,我看到SELECT *的使用存在一些性能问题,因此如果不需要所有列,则应该避免使用,因此我已更改为
$stmt = $conn->prepare("SELECT `id` FROM `users` WHERE `User` = ?");
$stmt->execute(array($user));
$Count = $stmt->rowCount();
echo $Count;我考虑使用MYSQL函数COUNT(),但我不确定它是否会提高几百万行和大约8-9列的表的性能。
$stmt = $conn->prepare("SELECT COUNT(`id`) FROM `users` WHERE `User` = ?");
$stmt->execute(array($user));
for($stmt as $row)
$Count = $row[0];
echo $Count;我应该使用上述哪一种方法,还是有其他更好的方法?
发布于 2018-06-07 09:13:51
使用COUNT(*)比获取所有行然后计数更有效。
所以你应该用:
$stmt = $conn->prepare("SELECT COUNT(`id`) FROM `users` WHERE `User` = ?");
$stmt->execute(array($user));
$count = $stmt->fetchColumn();
echo $Count;阅读更多关于fetchColumn的信息
https://stackoverflow.com/questions/50737385
复制相似问题