我有一些表的mysql数据库。在PHP脚本中存在此代码
$data = mysql_query("SELECT * FROM table1 WHERE Id='".$id."' LIMIT 1");
它工作正常。
现在我添加1个新表和mysql_query get:
错误#1064:您的SQL语法出错;检查手册 对应于您的MySQL服务器版本,以获得正确的语法 使用附近' INSERT INTO ...
Php脚本使用此语法
SELECT * FROM `table2` WHERE Id='".$id."' LIMIT 1
没有此符号'
脚本返回错误消息。怎么可能,选择查询到table1工作正常,类似的查询不能在表名周围没有'
符号的情况下工作?
答案 0 :(得分:0)
我认为你的代码的表名不是table1和table2。这个错误的共鸣可能是你的表名是“保留字”
示例:
它有效
Select * from table1
以下示例将因使用保留字
而出错Select * from update
要纠正此问题,必须在撇号“
之间写入更新一词答案 1 :(得分:0)
你的问题有很多问题,我非常害怕人们会因为你的编码质量极差而关闭它,而不是把它当作教学课。我们走了!!
mysql_
函数!! mysql_
功能现已弃用 十年 。使用它们是无可非议的。它们已经被弃用了至少三年,并且不再出现在现代PHP中。
请改用PDO。 http://www.phpro.org/tutorials/Introduction-to-PHP-PDO.html
这就是您的查询失败的原因。
在How can I prevent SQL-injection in PHP?
中实施所选答案您的代码质量如此之低,您绝对必须开始今天。你只是通过继续这样的做法使网络变得更糟,毫无疑问,如果你做的事情已被建议, 强烈 ,反对12年的大部分时间,你正在做其他 非常糟糕的事情 。
所以今天请再次开始学习!