2013-01-14 41 views
0

我的代码:对象无法转换成int

$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。据我的理解,这不是一个整数。

回答

1

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

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

这从查询得到的语句,然后获取第一行(只有一行从该查询),然后存储计数,$结果[0],到一个变量名为$计数。

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'];