我的代码:
$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
。根据我的理解,它不是int。
实际上,该查询将返回一个PDO语句。然后,你可以使用该语句来获取感兴趣的项目。
$statement = $pdo->query('SELECT COUNT(*) FROM myTable');
$result = $statement->fetch();
$count = $result[0];
从查询中获取语句,然后获取第一行(该查询中唯一的一行),然后将计数$result[0]存储到一个名为$count的变量中。
事情是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'];
对象PDO::fetachAll()的方法,返回一个数组;
和函数count(),接受混合参数并返回整数值。
$pdo = new PDO('mysql:host=localhost; dbname=test', 'root', 'password');
$query = $pdo->query('SELECT COUNT(*) FROM myTable')->fetchAll();
$countQuery = count($query);