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