首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正确的方法来计算准确的不。使用PDO对SQL中的行执行

正确的方法来计算准确的不。使用PDO对SQL中的行执行
EN

Stack Overflow用户
提问于 2018-06-07 09:12:29
回答 1查看 3.3K关注 0票数 0

我想数清楚不。在我的表中,这就是我所做的。如果我在表演上做错了,请告诉我。

旧道

代码语言:javascript
复制
//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 *的使用存在一些性能问题,因此如果不需要所有列,则应该避免使用,因此我已更改为

代码语言:javascript
复制
$stmt = $conn->prepare("SELECT `id` FROM `users` WHERE `User` = ?");
$stmt->execute(array($user));
$Count = $stmt->rowCount();
echo $Count;

我考虑使用MYSQL函数COUNT(),但我不确定它是否会提高几百万行和大约8-9列的表的性能。

代码语言:javascript
复制
$stmt = $conn->prepare("SELECT COUNT(`id`) FROM `users` WHERE `User` = ?");
$stmt->execute(array($user));
for($stmt as $row)
    $Count = $row[0];
echo $Count;

我应该使用上述哪一种方法,还是有其他更好的方法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-07 09:13:51

使用COUNT(*)比获取所有行然后计数更有效。

所以你应该用:

代码语言:javascript
复制
$stmt = $conn->prepare("SELECT COUNT(`id`) FROM `users` WHERE `User` = ?");
$stmt->execute(array($user));
$count = $stmt->fetchColumn();
echo $Count;

阅读更多关于fetchColumn的信息

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50737385

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档