匹配当前会话的表的列

时间:2012-08-11 22:56:10

标签: php mysql

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

我使用以下代码但得到解析错误:语法错误,意外T_ENCAPSED_AND_WHITESPACE,期待T_STRING或T_VARIABLE或T_NUM_STRING

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

1 个答案:

答案 0 :(得分:2)

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

查询中的

$username将由PHP评估为PHP $username变量的值,您显然没有该变量,而后者又将其评估为“”。

应引用

$_SESSION['username'](“”或“”),因为它显然是一个字符串值。

此外,我将其重写为:

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

话虽如此,您不希望将PHP中的任何变量直接传递给查询而不首先清理它们。这是一个注射天堂。

[编辑]

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