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

时间:2011-02-11 12:23:02

标签: php mysql sql session-variables

我试图将两个变量传递给一个mysql查询,并在下面传递会话变量时遇到困难:

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

任何提示?提前谢谢。

4 个答案:

答案 0 :(得分:8)

这是因为您的单引号'$_SESSION['Username']'已被会话中的值结束。将此更改为'" . $_SESSION['Username'] . "'将解决问题。

答案 1 :(得分:8)

这会有效,但这是非常,非常糟糕

$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());

答案 2 :(得分:0)

当你将数组嵌入到字符串中时,你必须通过连接它们或使用花括号来分隔它们。

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

$string = "text text " . $array['key'] . " text";

答案 3 :(得分:0)

为什么没有人说&#34;文本文本$ array [key] text&#34;语法?

SELECT * 
FROM  Clients 
WHERE Username = '$new_username' 
AND   Username != '$_SESSION[Username]'