【发布时间】:2016-12-09 00:00:20
【问题描述】:
我的 MySQL 还有一个错误,如下:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
我之前通过删除不必要的引号遇到过这个错误,但是这一次似乎不是问题。我也一直看到堆栈溢出问题,这些问题要么是因为不必要的引号,要么是该代码非常独特。如果有人可以帮助我或指出我有用的答案,我将不胜感激! :^]
代码:
$sql = "SELECT(sect_id, sect_name, sect_desc)FROM sections WHERE sect_id = " . mysqli_real_escape_string($con,$_GET["id"]);
$result = mysqli_query($con,$sql);
if(!$result)
{
echo 'The sections could not be displayed, please try again later.' . mysqli_error($con);
【问题讨论】:
-
去掉列名周围的括号
-
var_dump($sql);(或$result)(或回声)——你得到了什么? -
旁注:您对SQL Injections 持开放态度,应该真正使用Prepared Statements 而不是连接您的查询。
mysqli_real_escape_string()并不像人们希望的那样安全。 -
转储
$_GET['id']并检查它是否真的包含您认为的内容? -
听起来
$_GET["id"]未设置或在您将其插入$sql时为空。这会导致您的 SQL 查询为SELECT(sect_id, sect_name, sect_desc)FROM sections WHERE sect_id = ;并返回您看到的错误。在执行语句之前验证$_GET["id"]是否包含某些内容。