0

我的代码:

$pdo = new PDO('mysql:host=localhost; dbname=test', 'root', 'password');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->exec('SET NAMES "utf8"');
...
$count = $pdo->query('SELECT COUNT(*) FROM myTable');

我正在尝试计算所有记录myTable并将该数字存储为$count. 我怎样才能做到这一点?

我收到这条消息:Object of class PDOStatement could not be converted to int。据我了解,它不是一个整数。

4

3 回答 3

2

实际上,该查询将返回一个 PDO 语句。然后,您可以使用该语句来获取感兴趣的项目。

$statement = $pdo->query('SELECT COUNT(*) FROM myTable');
$result = $statement->fetch();
$count = $result[0];

这会从您的查询中获取语句,然后获取第一行(此查询中的唯一行),然后将计数 $result[0] 存储到名为 $count 的变量中。

于 2013-01-14T05:55:38.277 回答
1

事情是query函数返回您对语句的引用。来自PHP 手册

Return Values

PDO::query() returns a PDOStatement object, or FALSE on failure.

为了获得特定领域,请使用类似的东西

$result = $pdo->query('SELECT COUNT(*) total FROM myTable LIMIT 1');
$row = $result->fetch(PDO::FETCH_ASSOC);
$count = $row['total'];
于 2013-01-14T06:01:59.113 回答
0

Object PDO::fetachAll()的方法,返回一个数组;

和函数count(),接受混合参数并返回整数值。

$pdo = new PDO('mysql:host=localhost; dbname=test', 'root', 'password');

$query = $pdo->query('SELECT COUNT(*) FROM myTable')->fetchAll();

$countQuery = count($query);
于 2018-05-03T14:58:10.757 回答