2016-03-13 110 views
-5

我有一些表的MySQL数据库。在PHP脚本存在此代码mysql查询错误1064没有撇号

$data = mysql_query("SELECT * FROM table1 WHERE Id='".$id."' LIMIT 1"); 

它工作正常。

现在我添加1名新表,并请求mysql_query得到:

错误#1064:您的SQL语法错误;检查对应于你的MySQL服务器版本正确的语法附近“INSERT INTO 使用手册 ...

这个语法

SELECT * FROM `table2` WHERE Id='".$id."' LIMIT 1 

PHP脚本工作如果没有这个符号'脚本返回错误消息。怎么可能,选择查询到table1工作正常和类似的查询不工作没有'符号围绕表名称?

+2

只需停止使用'mysql_ *'功能... – hjpotter92

+2

您是否直接在您运行第二个查询phpmyadmin或使用php代码尝试运行它? –

+0

直接在phpmyadmin中运行 – Arman

回答

0

我认为你的代码的表名不是table1和table2。此错误的振振有辞可能是你的表名是“保留字”

例子:

它的工作原理

Select * from table1 

下面的例子将得到错误,因为使用的保留字

Select * from update 

要更正此错误,必须在撇号'

+0

表名是'order'。它是保留字? – Arman

+0

是的!它是! Order是一个mysql命令。所以你需要回刻录(不像你说的那样单引号) –

+0

这解释了为什么我得到这个错误。非常感谢!!! – Arman

0

您的问题存在很多问题,我非常害怕人们会因为您的编码质量极差而关闭它,而不是将它用作教学课程。开始了!!

1.停止使用mysql_功能!

mysql_功能已被弃用超过10年现在。使用它们是无可奈何的。它们已被弃用至少三年,并且不再存在于现代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年的更好的一部分,你在做其他真的很糟糕东西以及。

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