使用PHP在MYSQL查询中添加会话变量
我正试图将两个变量传递到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());
$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]'