我在这里有一点点代码而且我完全迷失了,因为我在第1行'unique ='dD0231q'LIMIT 1'附近得到语法错误。这可能是非常简单的事情,但我似乎是盲目的对我自己的错误..
$unique = $_GET["unique"];
$results = $mysqli->query("SELECT * FROM written WHERE unique = '$unique' LIMIT 1
答案 0 :(得分:3)
UNIQUE
是MySQL中的关键字。如果你想将它用作表列名,请将它包装在`(反引号)引号中,如下所示:
SELECT * FROM written WHERE `unique` = '$unique' LIMIT 1
另外,请不要只是将您从用户那里收到的值直接放入查询中。那就是SQL注入的发生方式。而是使用Prepared Statements。
答案 1 :(得分:2)
UNIQUE
是MySQL保留字http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html
将列包裹在刻度中或重命名。
SELECT * FROM written WHERE `unique` = '$unique'
错误说明了一切:
'unique 附近的语法错误
另外,对于SQL injection您可以使用的内容use mysqli
with prepared statements或PDO with prepared statements,,它们更安全。
为了争论,请完成它:
$results = $mysqli->query("SELECT * FROM written WHERE `unique` = '$unique' LIMIT 1");