【发布时间】:2013-10-15 00:47:12
【问题描述】:
我的查询有问题。我最近切换到 PDO,这对我来说有点新鲜。现在我需要在查询中使用 JOIN 从另一个表中获取数据,而无需执行两次。
问题是,我得到这个错误:
Call to a member function rowCount() on a non-object
我不明白问题出在哪里。这就是我的代码的样子:
$friends_string = "SELECT * FROM `friends` as F, `users` as U WHERE `F.userID` = '$sess_user' AND `F.request` = '0' AND `F.friendID` = 'U.id'";
$friends = $db->query($friends_string);
if ($friends->rowCount() > 0) {
while($row = $friends->fetch(PDO::FETCH_ASSOC)) {
echo "<br /><a href='profile.php?id={$row["id"]}'>{$row["friendID"]}</a>";
}
} else {
echo "no Friends";
}
或者简称,就是查询:
SELECT * FROM `friends` as F, `users` as U WHERE `F.userID` = '$sess_user' AND `F.request` = '0' AND `F.friendID` = 'U.id'
我想要的是,从用户 ID 为会话且请求为 0 的朋友那里获取所有行。但是我想在用户中获取这些朋友的 ID,以便我可以链接到他们的个人资料。注意$row["id"]
感谢任何反馈,不必回答我的问题,如果您发现任何问题,请发表评论。谢谢!
【问题讨论】:
-
如果你执行这个查询会出现什么错误?
-
在非对象上调用成员函数 rowCount()。
-
不行,直接在mysql上执行查询。问题在于查询,它不正确,
$db->query返回FALSE -
对不起,我如何直接在mysql上执行呢?
-
试试 print_r($friends) 看看是什么意思