我正在尝试将$ username变量与当前会话用户名(登录帐户的用户名)进行匹配。
我使用以下代码但得到解析错误:语法错误,意外T_ENCAPSED_AND_WHITESPACE,期待T_STRING或T_VARIABLE或T_NUM_STRING
$result = mysql_query("SELECT * FROM settings WHERE $username = $_SESSION['username']")
答案 0 :(得分:2)
我在这里看到三个非常明显的错误:
查询中的 $username
将由PHP评估为PHP $username
变量的值,您显然没有该变量,而后者又将其评估为“”。
$_SESSION['username']
(“”或“”),因为它显然是一个字符串值。
此外,我将其重写为:
$result = mysql_query("SELECT * FROM settings WHERE username = '" . $_SESSION['username'] . "'");
话虽如此,您不希望将PHP中的任何变量直接传递给查询而不首先清理它们。这是一个注射天堂。
[编辑]
此外,看到您的错误消息,错误可能在其他地方。除非你真的错过了行尾的;
。此外,该错误应该为您提供解释错误发生时的确切PHP行号。