我的代码:
$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。
答案 0 :(得分:1)
实际上,该查询将返回PDO语句。然后,您可以使用该语句来获取感兴趣的项目。
$statement = $pdo->query('SELECT COUNT(*) FROM myTable');
$result = $statement->fetch();
$count = $result[0];
这将从您的查询中获取语句,然后获取第一行(此查询中的唯一行),然后将计数$ result [0]存储到名为$ count的变量中。
答案 1 :(得分:1)
事情是query
函数返回对语句的引用。来自PHP manual
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'];
答案 2 :(得分: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);