当我添加'到URL的末尾时,为什么会出现错误?例如 :http://mywebsite.com/singel?id=24'
我收到以下错误:
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 '\' LIMIT 1' at line 1
如果我'在查询字符串中放入任何id之后,这随处可见.
有什么不对,怎么修好?谢谢.
您正在SQL查询中插入非转义变量.如果此变量恰好包含SQL特殊字符,则可能导致SQL语法错误或更糟.
在将变量插入SQL查询之前,需要转义变量.
例:
$query = "SELECT * FROM users WHERE id = " . mysql_real_escape_string($id);
Run Code Online (Sandbox Code Playgroud)
而不是(这是错误的,不要这样做):
$query = "SELECT * FROM users WHERE id = $id LIMIT 1";
Run Code Online (Sandbox Code Playgroud)
如果$id是24',查询变为:
$query = "SELECT * FROM users WHERE id = 24' LIMIT 1";
Run Code Online (Sandbox Code Playgroud)
如您所见,有一个'after 24,这是一个语法错误.