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);

我不断收到此错误:

保存约翰逊游戏时出错。(您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,了解在 'keys,puzzle,posX,posY,map 附近使用的正确语法) VALUES ('maze','Johnson','Patrick ','eddie' 在第 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,

我已将 'map' 列的大小增加到 VARCHAR (10000),因为我认为我超出了我设置的 1000 的限制,但我仍然收到错误。

4

2 回答 2

6

KEYS是 mysql 的保留字。所以你需要在它周围加上反引号:

gold, `keys`,puzzle
于 2012-09-06T22:00:58.800 回答
0

keys是保留字,likeSELECTLIMIT其他。正确的用法是在每个字段周围添加反引号,以便 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);
于 2012-09-06T22:04:53.590 回答