Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySQL。where语句。查询_Php_Mysql - Fatal编程技术网

Php MySQL。where语句。查询

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

我正在编写一个脚本,在这个脚本中,登录的用户只需查找存储在MySQL数据库中的带有用户名的消息

('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模式,否则它将使用单引号。