我正在尝试确定如何显示登录用户当前未关注的用户列表。
我有一个用户表和一个称为连接的表。我已经为登录用户$me
我正在尝试以下SQL代码,但始终收到错误消息,指出列'3011'不存在。
3011是用户ID(在关注者中)
我的代码是
$people = $this->db->query("SELECT *
from users
WHERE NOT EXISTS
(SELECT following FROM connections c WHERE c.follower = `$me` AND c.following = users.userID)
真的不明白我在做什么错,任何建议都将不胜感激
您的代码基本上是正确的,但是您想使用parameters:
SELECT u.*
from users u
WHERE NOT EXISTS (SELECT 1
FROM connections c
WHERE c.follower = ? AND c.following = u.userID
);
参数的主题希望您已经知道。如果没有,您需要了解这一点。 PHP documentation是一个合理的起点。
您正在使用的反引号表示将输入值视为列名,这就是为什么会出错的原因。尽管您可以通过消除反引号来解决此问题,但正确的方法是使用参数-既提高性能(缓存查询计划),又使代码更安全。