使用PHP在MYSQL查询中添加会话变量

使用PHP在MYSQL查询中添加会话变量,php,mysql,sql,session-variables,Php,Mysql,Sql,Session Variables,我正试图将两个变量传递到mysql查询中,但在下面传递会话变量时遇到了问题: $check = mysql_query("SELECT * FROM Clients WHERE Username = '$new_username' AND Username != '$_SESSION['Username']'") or die(mysql_error());

我正试图将两个变量传递到mysql查询中,但在下面传递会话变量时遇到了问题:

$check = mysql_query("SELECT * 
                      FROM Clients 
                      WHERE Username = '$new_username' 
                      AND Username != '$_SESSION['Username']'") or die(mysql_error()); 

有什么建议吗?提前感谢。

这是因为您的单引号
'$\u会话['Username']'
已由会话中的值结束。将此更改为“$\u会话['Username']”。“将解决此问题。

这将起作用,但这是非常非常糟糕的:

$check = mysql_query("
    SELECT * 
    FROM  Clients 
    WHERE Username = '$new_username' 
    AND   Username != '{$_SESSION['Username']}'
") or die(mysql_error());
这也将起作用,并推荐了这样做的方法:

$check = mysql_query("
    SELECT * 
    FROM  Clients 
    WHERE Username  = '" . mysql_real_escape_string($new_username) . "' 
    AND   Username <> '" . mysql_real_escape_string($_SESSION['Username']) . "'
") or die(mysql_error());
$check=mysql\u查询(“
选择*
来自客户
其中Username=“.mysql\u real\u escape\u字符串($new\u Username)。”
和用户名“.mysql\u real\u escape\u字符串($\u SESSION['Username'])。”
)或死亡(mysql_error());

将数组嵌入到字符串中时,必须通过连接数组或使用大括号将它们分开

$string = "text text {$array['key']} text";

为什么没有人说“text text$array[key]text”语法


尝试此
“从Username='$new\u Username'和Username!=''的客户端选择*”。“$\u会话['Username']”““”
“卡住”并不是真正的错误消息。这会产生什么样的输出呢?谢尔斯·沙克蒂说:我希望你现在看到你的问题与会话或mysql无关,只是PHP字符串语法问题。请注意萨尔曼的回答。SQL注入是一件需要避免的事情。。。
$string = "text text " . $array['key'] . " text";
SELECT * 
FROM  Clients 
WHERE Username = '$new_username' 
AND   Username != '$_SESSION[Username]'