出于某种原因,我在使用编辑脚本时遇到此错误。
我甚至尝试填写POST
值并通过PHPmyAdmin
执行。这是我得到的错误:
#1064 - 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 'drop=1, sell=10, cash=10, law=7, boss=1 WHERE ID=11' at line 1
这是查询:
UPDATE toondb SET name =' $ _ POST [toonname]',tlaff = $ _ POST [tlaff],ttype = $ _ POST [ttype],toonup = $ _ POST [toonup],trap = $ _ POST [陷阱],lure = $ _ POST [lure],sound = $ _ POST [sound],throw = $ _ POST [throw],squirt = $ _ POST [squirt],drop = $ _ POST [drop],sell = $ _ POST [sell ],cash = $ _ POST [cash],law = $ _ POST [law],boss = $ _ POST [boss] WHERE ID = $ _ POST [ID]
这里是填充值的那个:
UPDATE toondb SET name =' ik',tlaff = 137,ttype = 2,toonup = 1,trap = 1,lure = 1,sound = 1,throw = 1,squirt = 1,drop = 1,卖出= 10,现金= 10,法律= 7,boss = 1 WHERE ID = 11
除名称外,所有列均为INT
。名称是varchar
。
答案 0 :(得分:3)
单词drop
是保留关键字。使用反引号逃脱它。
像这样:
UPDATE toondb SET name='ik', tlaff=137, ttype=2, toonup=1, trap=1, lure=1,
sound=1, throw=1, squirt=1, `drop`=1, sell=10, cash=10, law=7, boss=1 WHERE ID=11
答案 1 :(得分:2)
答案 2 :(得分:0)
尝试将列名添加到反引号中,以防您使用保留字。
答案 3 :(得分:0)
已发布的答案是正确的(DROP
是保留字);我只是想说明$_POST[toonname]
这样的语法在技术上是不正确的 - 应该引用非数字索引:$_POST["toonname"]
或$_POST['toonname']
。您使用的语法只能起作用,因为PHP支持称为“密钥转换”的东西 - 正如文档警告的那样,这可能不会始终受到支持,并且可能会产生意外结果:http://php.net/manual/en/language.types.array.php#language.types.array.donts