Php MySQL。where语句。查询
我正在编写一个脚本,在这个脚本中,登录的用户只需查找存储在MySQL数据库中的带有用户名的消息Php MySQL。where语句。查询,php,mysql,Php,Mysql,我正在编写一个脚本,在这个脚本中,登录的用户只需查找存储在MySQL数据库中的带有用户名的消息 ('SELECT * FROM messages WHERE username = ' . $_SESSION['username'] . ' ') 输出。“where子句”中出现未知列“John”您的脚本对SQL注入开放。请阅读 回答你的问题。您缺少用户名字符串周围的双引号 ('SELECT * FROM messages WHERE username = "' . $_SESSION['user
('SELECT * FROM messages WHERE username = ' . $_SESSION['username'] . ' ')
输出。“where子句”中出现未知列“John”您的脚本对SQL注入开放。请阅读 回答你的问题。您缺少用户名字符串周围的双引号
('SELECT * FROM messages WHERE username = "' . $_SESSION['username'] . '" ')
^ ^
这不是向您抛出该问题的查询error@Mr.Alien:如果会话['username']='John',它肯定可以。他实际上并没有将其转义为字符串,所以它被解释为一个列名。@DCoder它是一个值,而不是一个列name@Mr.Alien:如果
$\u会话['username']=='John'
,则发送到MySQL的查询如下所示:从username=John的消息中选择*。John
周围没有引号,因此不能将其解释为值。@Mr.Alien MySQL将把一个不带引号的字符串解释为列名。除非您处于ansi模式,否则它将使用单引号。