mysql查询错误1064没有撇号

时间:2016-03-13 06:48:12

标签: php mysql

我有一些表的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工作正常,类似的查询不能在表名周围没有'符号的情况下工作?

2 个答案:

答案 0 :(得分:0)

我认为你的代码的表名不是table1和table2。这个错误的共鸣可能是你的表名是“保留字”

示例:

它有效

Select * from table1 

以下示例将因使用保留字

而出错
Select * from update

要纠正此问题,必须在撇号“

之间写入更新一词

答案 1 :(得分:0)

你的问题有很多问题,我非常害怕人们会因为你的编码质量极差而关闭它,而不是把它当作教学课。我们走了!!

1。停止使用mysql_函数!!

mysql_功能现已弃用 十年 。使用它们是无可非议的。它们已经被弃用了至少三年,并且不再出现在现代PHP中。

请改用PDO。 http://www.phpro.org/tutorials/Introduction-to-PHP-PDO.html

2。停止使用SQL注入!!开始使用预准备语句

这就是您的查询失败的原因。

How can I prevent SQL-injection in PHP?

中实施所选答案

3。提高你的PHP技能。

您的代码质量如此之低,您绝对必须开始今天。你只是通过继续这样的做法使网络变得更糟,毫无疑问,如果你做的事情已被建议, 强烈 ,反对12年的大部分时间,你正在做其他 非常糟糕的事情

所以今天请再次开始学习!