我这里有一点代码,我完全迷失了,因为我在第 1 行的"唯一 = '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");