fetchColumn()vs rowCount()仅用于检查现有的

时间:2015-09-28 14:57:54

标签: php mysql pdo

我需要检查是否存在行。这是我的疑问:

if($stmt->fetchColumn()){}
if($stmt->rowCount()){}

现在我想知道哪一个更快:(我使用PDO)

<a href="home.php?click=1" class="btn">Click me</a>
<?php 
  if($_GET['click']){
    doSomething();
  }
?>

再一次,我不想取任何一行,我只想查看现有的......

1 个答案:

答案 0 :(得分:2)

没关系。

如果您只选择一行,则两种方法都会同样快。

顺便说一下,你的查询是多余的。

SELECT 1 FROM table WHERE col = ? LIMIT 1

绰绰有余

嗯,关于速度差异。鉴于你的代码,在五分钟内,我会发现几个点的效率低于这个可忽略不计的差异的数百倍。只是为了向您表明您对单一操作的关注是多余的。解释的网络语言不是微秒优化。

您真正关心的应该是col字段的索引。只要你拥有它,你的代码就会很快。如果不是 - 没有PDO功能可以使它快速。

但如果你仍然想要一个选择,我会坚持fetchColumn(),因为它似乎更直接地回答了问题