SQL 使用 WHERE 时出现语法错误

SQL Syntax Error Using WHERE

我正在为我的网站创建一个消息传递系统,我正在尝试显示您的朋友,但我遇到了错误,因为我遇到了错误:

Select Friend: Invalid query: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT `user_two` FROM `friends` WHERE (`user_one`='2')' at line 1

这是我的 PHP 代码:

mysql_connect("************", "*****", "**********");
mysql_select_db("******");

if(isset($_GET['user']) && !empty($_GET['user'])){
   echo "Send Message To " . getuser($_GET['user'], 'first_name');
} else {
   echo "Select Friend: ";
$my_id = $_SESSION['user_id'];
$friend_list = mysql_query("SELECT `user_one` FROM `friends` WHERE (`user_two`='$my_id') OR SELECT `user_two` FROM `friends` WHERE (`user_one`='$my_id')");
if (!$friend_list) { // add this check.
      die('Invalid query: ' . mysql_error());
}
while($run_user = mysql_fetch_array($friend_list)){
    if($run_user['user_one'] == $my_id){
        echo "1";
    } else {
        echo "2";
    }
}
}

这是我的朋友 table 结构:

`id` int(11) AUTO INCREMENT PRIMARY  
`user_one` int(11)   
`user_two` int(11) 

我正在尝试获取朋友 ID 并确保它不是我的,然后显示我需要的信息,我对 SQL 有点生疏,所以请记住这一点。

只需删除查询内部的括号...完成

首先,你不应该使用mysql_。它已被弃用。使用 mysqli.

您的查询是:

SELECT `user_one`
FROM `friends`
WHERE (`user_two`='$my_id') OR
SELECT `user_two`
FROM `friends`
WHERE (`user_one`='$my_id')

这没有意义。 OR 不用于连接两个查询。一种解决方案是使用 union all:

SELECT `user_one`
FROM `friends`
WHERE `user_two` = '$my_id'
UNION ALL
SELECT `user_two`
FROM `friends`
WHERE `user_one` = '$my_id';