我试图将两个变量传递给一个mysql查询,并在下面传递会话变量时遇到困难:
$check = mysql_query("SELECT *
FROM Clients
WHERE Username = '$new_username'
AND Username != '$_SESSION['Username']'") or die(mysql_error());
任何提示?提前谢谢。
答案 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]'