WHERE NOT IN命令在PHP中不起作用,但在SQL中起作用

WHERE NOT IN命令在PHP中不起作用,但在SQL中起作用,php,mysql,sql,Php,Mysql,Sql,所以我试图从一个表中选择一些在另一个表的选择中不存在的值 这是我运行的SQL命令: SELECT `u882219588_data`.`user`.`user_name`, `u882219588_data`.`user`.`email`, `u882219588_data`.`user`.`name`FROM `u882219588_data`.`user` WHERE `u882219588_data`.`user`.`user_name` NOT IN (SEL

所以我试图从一个表中选择一些在另一个表的选择中不存在的值

这是我运行的SQL命令:

SELECT `u882219588_data`.`user`.`user_name`, `u882219588_data`.`user`.`email`,
       `u882219588_data`.`user`.`name`FROM `u882219588_data`.`user`
WHERE `u882219588_data`.`user`.`user_name` 
      NOT IN (SELECT 
                  `u882219588_data`.`user_groups`.`user_name` 
              FROM `u882219588_data`.`user_groups` 
              WHERE 
                  `u882219588_data`.`user_groups`.`group_id` = '$group_id');
它在PHPMyAdmin中工作得非常好!但当我在PHP中使用它时:

//Login information on top
if (isset($_GET['group_id'])) {
    $array = array();
    $response = array();
    $groupid = $_GET['group_id'];

    $result = mysqli_query($con,
            "SELECT `u882219588_data`.`user`.`user_name`, 
                   `u882219588_data`.`user`.`email`, `u882219588_data`.`user`.`name`
             FROM `u882219588_data`.`user`
             WHERE `u882219588_data`.`user`.`user_name` 
                NOT IN (SELECT 
                            `u882219588_data`.`user_groups`.`user_name` 
                        FROM `u882219588_data`.`user_groups` 
                        WHERE
                          `u882219588_data`.`user_groups`.`group_id` = '$group_id');");

    while($obj = mysqli_fetch_object($result)) {
        $array[] = $obj;
    }
    $response["success"]=1;
    $response["result"]=$array;
    $response["group_id"] = $groupid;

    print(json_encode($response));
}

mysqli_close($con);
它实际上从
用户
表中选择每一行!我不明白这里发生了什么。 我甚至试着改变一下PHP,使用另一种方法,但同样的结果发生了

后来我发现

SELECT 
     `u882219588_data`.`user_groups`.`user_name` 
FROM 
     `u882219588_data`.`user_groups` 
WHERE 
`u882219588_data`.`user_groups`.`group_id` = '$group_id'
实际上返回了一个空集,但我不知道为什么,因为它在PHPMyAdmin中工作


有人看到错误了吗?

输入错误:您的变量被调用

$groupid = $_GET['group_id'];
但您在查询中使用的是
$group\u id


也请阅读@tadman的评论,否则sql注入会导致安全问题。

使用
mysqli
时,您应该使用参数化查询,并将用户数据添加到查询中。不要使用字符串插值来完成此操作,因为这样会创建严重的错误。为了您的利益,我希望此代码不在公共互联网附近。您的代码中有一个输入错误@$groupid是您声明的变量,您使用的是$groupu\id。请参阅下面的@bidfix-answer。