[英]MySQL syntax error in a simple query
我这里有一些代码,当我在第1行的'unique ='dD0231q'LIMIT 1'附近遇到语法错误时,我完全迷失了。这可能很简单,但是我似乎对自己的视力不了解错误..
$unique = $_GET["unique"];
$results = $mysqli->query("SELECT * FROM written WHERE unique = '$unique' LIMIT 1
UNIQUE
是MySQL中的关键字。 如果要使用它作为表列名,请使用`(反引号)引号将其引起来,如下所示:
SELECT * FROM written WHERE `unique` = '$unique' LIMIT 1
另外,请不要仅将您从用户那里收到的值直接放入查询中。 这就是SQL注入发生的方式。 而是使用预准备语句 。
UNIQUE
是MySQL的保留字http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html
将该列打勾或重命名。
SELECT * FROM written WHERE `unique` = '$unique'
错误说明了一切:
'独特'附近的语法错误
另外,对于您可以打开的SQL注入 , 将mysqli
与预备语句一起使用 ,或将PDO与预备语句一起使用 ,则它们要安全得多 。
仅出于争论的目的,将其结束:
$results = $mysqli->query("SELECT * FROM written WHERE `unique` = '$unique' LIMIT 1");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.