0

我正在尝试将 $username 变量与当前会话用户名(登录帐户的用户名)匹配。

我正在使用以下代码,但出现解析错误:语法错误,意外 T_ENCAPSED_AND_WHITESPACE,期望 T_STRING 或 T_VARIABLE 或 T_NUM_STRING

$result = mysql_query("SELECT * FROM settings WHERE $username = $_SESSION['username']")
4

1 回答 1

2

我在这里看到三个非常明显的错误:

$username在查询中将由 PHP 评估为 PHP$username变量的值,您显然没有该值,然后将其评估为“”。

$_SESSION['username']应该用引号引起来(“”或“'”),因为它显然是一个字符串值。

此外,我将其重写为:

$result = mysql_query("SELECT * FROM settings WHERE username = '" . $_SESSION['username'] . "'");

话虽如此,您不想在不先清理它们的情况下将任何变量从 PHP 直接传递给查询。这是一个注射天堂。

[编辑]

此外,看到您的错误消息,错误可能在其他地方。除非你真的错过了;你的行尾。此外,该错误应该为您提供发生解释错误的确切 PHP 行号。

于 2012-08-11T23:00:10.870 回答