我的查询有问题。我最近切换到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'
我想要的是,从朋友那里获取所有行,其中userID是会话,请求是0.但是我想获得用户中的朋友的ID,以便我可以链接到他们的个人资料。请注意$row["id"]
我感谢任何反馈,不必回答我的问题,如果您发现任何问题请注释。谢谢!
答案 0 :(得分:4)
不要在`table.field`周围放回蜱...你必须把它们放在`table``field`
周围答案 1 :(得分:0)
使用以下内容更改您的查询:
$query = "SELECT * FROM `friends` as F INNER JOIN `users` as U ON `F.friendID` = `U.id` WHERE `F.userID` = '{$sess_user}' AND `F.request` = '0'";
并将此添加到您的连接中,它会显示错误:
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // Set Errorhandling to Exception
答案 2 :(得分:-1)
IMHO! 我用PDO看到了类似的问题...... 和... 我认为使用纯SQL更有可能做到这一切,但是好了,然后再用PDO。