PDO - 获得COUNT(*)的结果?

时间:2010-11-22 14:18:49

标签: php pdo

在新用户注册过程中,我正在尝试查找用户名或用户电子邮件是否已在数据库中。为此,我想找到标识符(电子邮件或用户名)与数据库中的记录匹配的行数。如果我没有搞砸,唯一可能的返回值是0或1.我的功能如下,但我需要帮助来完成它。

function checkUserExists($userIdentifier, $tableColName){
 $dbConnection=$this->dbInstance->createConnexion();
 $query=$dbConnection->prepare("SELECT count(*) FROM users WHERE ".$tableColName."= :userIdentifier");
 $query->bindParam(":userIdentifier", $userIdentifier);
 $result=$query->execute();
 if( ????? >0){
  $return false;
 } else return true;
}

愚蠢的我,我不知道如何获得那个计数。我想这是$query->fetch()的一些变体,但那会是一个数组吗?

2 个答案:

答案 0 :(得分:7)

(注意:我没有对此进行测试,也没有在我的工作机器上安装PHP来测试它;我在C#/ Java商店工作)

可能,你想要$query->fetchColumn();

您也可以传递所需的列号,但默认为第0列。

答案 1 :(得分:3)

您可以使用->fetchColumn(0)从下一个(唯一的)行集中获取1和唯一列。

if ( $query->fetchColumn(0) > 0 ){
  return false;
} else return true;