【问题标题】:PDO - get the result of a COUNT(*)?PDO - 获得 COUNT(*) 的结果?
【发布时间】:2010-11-22 14:18:49
【问题描述】:

在新用户注册过程中,我正在尝试查找用户名或用户电子邮件是否已经在数据库中。为此,我想查找标识符(电子邮件或用户名)与数据库中的记录匹配的行数。如果我不搞砸,唯一可能的返回值是 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() 的一些变体,但那将是一个数组,对吧?

【问题讨论】:

  • $result 返回什么?我认为这已经是您需要的值。否则,您可能需要查看 PHP 文档 php.net/manual/en/pdo.prepare.php,尤其是 fetchAll(PDO::FETCH_COLUMN, 0)
  • @moontear: execute 返回一个布尔值。

标签: php pdo


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-30
      • 1970-01-01
      • 2011-04-27
      • 2013-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多