为什么PDO的fetchColumn()忽略了我的查询中的SQL LIMIT部分?
当数据库中有2条记录时,$ result返回“2”?
谢谢!
$sql = "SELECT count(*) FROM table WHERE Username = ? and
Password = ? LIMIT 1";
$q = $this->connection->prepare($sql);
$q->execute(array($user, $pwd));
$result = $q->fetchColumn();
echo $result;
答案 0 :(得分:1)
因为对于在数据库中找到的记录数,计数可能是2,但是该聚合函数只需要一行来返回结果。这里的限制实际上是没用的。
换句话说,在服务器上没有LIMIT的情况下运行该查询,您将看到一行值为2的结果集(如果表中有两个这样的用户/密码组合)。