php - PDO 联盟计数

标签 php mysql pdo

public function totalRecords($keyword) {
    $sql = "SELECT COUNT(uid) FROM user_information WHERE title LIKE ? OR name LIKE ? OR surname LIKE ? 
          UNION ALL
          SELECT COUNT(id) FROM groups WHERE name LIKE ?";
    $query = $this->db->prepare($sql);
    $query->execute(array("%$keyword%", "%$keyword%", "%$keyword%", "%$keyword%"));
    return $query->rowCount();
}

我正在尝试创建寻呼机,我需要对搜索词条进行总记录。

上面的代码不起作用,它总是返回 0。我该怎么做?

最佳答案

rowCount()

PDOStatement::rowCount() returns the number of rows affected by the last DELETE, INSERT, or UPDATE statement executed by the corresponding PDOStatement object.

所以你必须使用 fetch()sum()

public function totalRecords($keyword) {
    $sql = "SELECT SUM(num) as num  FROM
             (SELECT COUNT(uid) as num FROM user_information WHERE title LIKE ? OR name LIKE ? OR surname LIKE ? 
             UNION ALL
            SELECT COUNT(id)as num FROM groups WHERE name LIKE ?)
            AS X";
    $query = $this->db->prepare($sql);
    $query->execute(array("%$keyword%", "%$keyword%", "%$keyword%", "%$keyword%"));
    $Total = $query->fetch();
   return $Total['num'];
}

关于php - PDO 联盟计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34015120/

相关文章:

php - Try-Catch 未捕获自定义异常类型

php - 向类(class) Moodle 添加自定义字段

列出 future 和过去 14 天内所有生日的 SQL

Zend 中的 PHP 数据对象

php - MySQL ORDER BY 结合两个最接近今天的日期

javascript - 运行 PHP 回显 Javascript

python - 更新 tondb 连接时区而不生成新连接

php - 将 PHP 打印为 Javascript

php - 使用 PDO 连接 MySQL

Oracle PDO OCI 字符集失败