[英]Using a join with an SQL query
我想使用联接仅查询我想要的数据库中的数据。 但是,我无法使查询正常工作。
这是我的代码。 看一看,
<?php
$user_id= $_COOKIE['user_id'];
$dbc= mysqli_connect('localhost', 'root', '', 'beta');
$query=" SELECT * FROM posts LEFT JOIN relationships ON (posts.user_id=
relationship.user_2 AND relationships.user_1 = $user_id AND relationship.status = 4 OR
3 OR 1)";
$result= mysqli_query($dbc, $query);
echo mysqli_num_rows($result);
?>
我只是通过查看查询是否返回任何行来查看查询是否在这一点上正常工作。 但这行不通。 我可能做错了什么?
您在WHERE
子句条件中的OR
语法不正确。 尝试这样的事情:
SELECT *
FROM posts a
LEFT JOIN relationships b
ON a.user_id = b.user_2
WHERE b.user_1 = $user_id AND
b.status IN (1,3,4)
在PDO中,它可能如下所示:
<?php
$stmt = $dbh->prepare("SELECT *
FROM posts a
LEFT JOIN relationships b
ON a.user_id = b.user_2
WHERE b.user_1 = ? AND
b.status IN (1,3,4)");
$stmt->bindParam(1, $user_id);
$stmt->execute();
?>
请记住要始终过滤您的输入,尤其是用于查询数据库的输入。
您在查询中混用了“关系”和“关系”,也许坚持使用表的名称是什么?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.