2012-09-06 81 views
1
$result2 = mysql_query("INSERT INTO mazegames 
     (game,savename,player,playerimg,level,gold,keys,puzzle,posX,posY,map) 
    VALUES 
     ('$game','$Save','$player','$playerimg','$level','$gold','$keys','$puzzle','$x','$y','$map')",$db); 

我不断收到此错误:MySQL的插入语法错误PHP

Error saving Johnson game. (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 'keys,puzzle,posX,posY,map) VALUES ('maze','Johnson','Patrick','eddie' at line 2 -- 'maze','Johnson','Patrick','eddie.gif','1','0','0','fail','17','13','w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,b,b,b,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,n,g,g,g,w,g,g,m,g,g,g,m,w,g,g,g,g,g,w,w,w,w,w,w,w,w,g,w,g,g,w,g,g,g,g,g,g,g,w,g,w,g,g,g,w,w,w,w,w,w,w,w,g,g,w,m,w,m,w,w,w,d,w,w,g,g,w,w,g,g,w,w,w,w,w,w,w,w,g,g,g,w,w,w,g,g,g,g,g,g,g,g,w,g,m,g,w,w,w,w,w,w,w,w,g,n,g,g,d,g,g,g,g,g,g,g,g,g,w,g,g,g,w,w,w,w,w,w,w,w,g,g,g,w,w,g,g,w,w,g,w,w,g,g,w,g,w,g,w,w,w,w,w,w,w,w,g,g,w,m,w,g,g,w,m,g,m,w,g,g,w,g,g,w,w,w,w,w,w,w,w,w,g,n,g,g,w,g,g,w,g,g,g,w,g,g,w,m,g,a,w,w,w,w,w,w,w,w,g,w,w,w,w,g,w,w,w,g,w,w,w,g,w,w,w,w,w,w,w,w,w,w,w,w,g,g,g,g,g,j,g,g,g,i,g,g,g,j,g,g,g,g,w,w,w,w,w,w,w,w,w,w,w,w,w,g,w,w,w,g,w,w,w,g,w,w,w,g,w,w,w,w,w,w,w,w,n,g,n,m,w,g,g,w,m,g,m,w,g,g,w,g,g,g,w,w,w,w,w,w,w,w,g,g,w,g,w,g,g,w,g,g,g,w,g,g,w,g,g,g,w,w,w,w,w,w,w,w,g,w,g,g,w,g,g,g,w,w,w,g,g,g,w,w,g,g,w,w,w,w,w,w,w,w,k,g,g,g,w,k,g,g,g,g,g,g,g,k,w,g,g,g,w,w,w,w,w,w,w,w,w,w,w,g,g,w,w,w,w,k,w,w,w,w,w,g,g,g,w,w,w,w,w,w,w,w,m,m,w,g,g,g,g,g,g,w,m,g,g,g,d,g,g,g,w,w,w,w,w,w,w,w,g,m,w,w,w,w,g,g,g,w,g,g,g,g,w,g,w,g,w,w,w,w,w,w,w,w,g,g,d,s,d,d,g,g,g,w,g,g,g,w,g,g,g,g,w,w,w,w,w,w,w,w,b,w,w,w,w,w,g,g,w,g,g,g,w,g,g,w,g,g,w,w,w,w,w,w,w,w,x,w,w,w,w,w,m,g,c,g,g,w,a,g,w,g,g,e,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w')

我有,因为我以为我是在超越1000极限的“地图”栏的尺寸增大到VARCHAR(10000)我已经设置了,但我仍然得到错误。

回答

6

KEYS是一个mysql reserved word。所以,你需要把它周围的反引号:

gold, `keys`,puzzle 
+0

作为一般规则,请始终围绕数据库,表和字段名称进行反引号来标识它们。 –

+0

@Kolink:我个人只会对保留字进行处理,只要从我的个人角度来看,他们会使查询不易读和维护 – zerkms

0

keys是一个保留字,像SELECTLIMIT或别的东西。正确的用法是在每个字段周围添加反引号,以便SQL标识它。

$result2 = mysql_query("INSERT INTO mazegames 
    (`game`,`savename`,`player`,`playerimg`,`level`,`gold`,`keys`,`puzzle`,`posX`,`posY`,`map`) 
VALUES 
    ('$game','$Save','$player','$playerimg','$level','$gold','$keys','$puzzle','$x','$y','$map')",$db);