我需要检查是否存在行。这是我的疑问:
if($stmt->fetchColumn()){}
if($stmt->rowCount()){}
现在我想知道哪一个更快:(我使用PDO)
<a href="home.php?click=1" class="btn">Click me</a>
<?php
if($_GET['click']){
doSomething();
}
?>
再一次,我不想取任何一行,我只想查看现有的......
答案 0 :(得分:2)
没关系。
如果您只选择一行,则两种方法都会同样快。
顺便说一下,你的查询是多余的。
SELECT 1 FROM table WHERE col = ? LIMIT 1
绰绰有余
嗯,关于速度差异。鉴于你的代码,在五分钟内,我会发现几个点的效率低于这个可忽略不计的差异的数百倍。只是为了向您表明您对单一操作的关注是多余的。解释的网络语言不是微秒优化。
您真正关心的应该是col
字段的索引。只要你拥有它,你的代码就会很快。如果不是 - 没有PDO功能可以使它快速。
但如果你仍然想要一个选择,我会坚持fetchColumn()
,因为它似乎更直接地回答了问题