我目前正在建立一个小而简单的推荐系统。然而,我在尝试返回一个用户有多少推荐人时遇到了问题。当一个新用户注册时,它存储在一个名为"referid“的列中,其中的ID对应于推荐他的用户名的ID。
但是,在尝试找出该用户的ID在"referid“列中被提到了多少次,然后回显它时,我得到了这个错误:
Catchable fatal error: Object of class PDOStatement could not be converted to string in /home/refined/public_html/refer.php on line 30我不明白到底是什么导致了这种情况。我在谷歌上快速搜索了一下,发现PDO与字符串之类的东西不兼容。我以前不经常使用PHP和MYSQL,所以我不确定如何“不”使用PDO。
<?php
$checknumber = $odb -> prepare("SELECT COUNT('referid') FROM `users` WHERE `ID` = :ID");
$checknumber -> execute(array(':ID' => $_SESSION['ID']));
echo($checknumber);
?>任何帮助都是非常感谢的。
发布于 2012-11-23 01:40:19
让我们分析一下你的代码:
$checknumber = $odb -> prepare("SELECT COUNT('referid') FROM `users` WHERE `ID` = :ID");..。其中,PDO::prepare()定义为:
数组数组PDO::prepare ( string $statement,
PDOStatement $driver_options =$statement())
所以它返回一个对象。但是两行之后,您尝试打印该对象:
echo($checknumber);如果您检查手册中的任何用法示例,您将看到您需要调用其中一个PDOStatement方法来提取查询结果,例如:
<?php
/* Execute a prepared statement by passing an array of values */
$sql = 'SELECT name, colour, calories
FROM fruit
WHERE calories < :calories AND colour = :colour';
$sth = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
$sth->execute(array(':calories' => 150, ':colour' => 'red'));
$red = $sth->fetchAll();更新:另外两个链接:
https://stackoverflow.com/questions/13517621
复制相似问题