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。我该怎么做?
最佳答案
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/