[英]mysql_query doesn't work and gives error
while($x < 10)
{
$str = "( NULL, '{$players[$x]}', '1' , 0 + {$sonucs[$x]},oynananoyun - win,'{$rols[$x]}','{$teams[$x]}','{$playerkills[$x]}','{$playerdeaths[$x]}','{$playerassists[$x]}','{$creeps[$x]}','{$dmgs[$x]}','{$dpms[$x]}','{$wards[$x]}','{$playergolds[$x]}','{$gpms[$x]}', '{$goldpercantages[$x]}', 0 + {$fbs[$x]},'{$dmgpercantages[$x]}', '{$wardscleared[$x]}', '{$wpm[$x]}', '{$wcpm[$x]}','{$wardpercents[$x]}', '{$wardsclearedpercents[$x]}', '{$cspms[$x]}')";
$yaya = "kill = kill + {$playerkills[$x]}, death = death + {$playerdeaths[$x]},assist = assist + {$playerassists[$x]},cs = cs + {$creeps[$x]}, cspm = cspm + {$cspms[$x]}, takim = {$teams[$x]}, dmg = dmg + {$dmgs[$x]}, dpm = dpm + {$dpms[$x]},wardplaced = wardplaced + {$wards[$x]}, oynananoyun = oynananoyun + 1, win = win + {$sonucs[$x]}, rol = {$rols[$x]}, gold = gold + {$playergolds[$x]}, goldshare = goldshare + {$goldpercantages[$x]}, gpm = gpm + {$gpms[$x]}, fb = fb + {$fbs[$x]}, dmgshare = dmgshare + {$dmgpercantages[$x]}, wardcleared = wardcleared + {$wardscleared[$x]}, wardplacedpm = wardplacedpm + {$wpm[$x]}, wardclearedpm = wardclearedpm + {$wcpm[$x]}, wardplacedshare = wardplacedshare + {$wardpercents[$x]}, wardclearedshare = wardclearedshare + {$wardsclearedpercents[$x]}";
mysql_query ("INSERT INTO playerstats18 (`id`,`player`,`oynananoyun`,`win`,`lose`,`rol`,`takim`,`kill`,`death`,`assist`,`cs`,`dmg`,`dpm`,`wardplaced`,`gold`,`goldshare`,`gpm`,`fb`,`dmgshare`,`wardcleared`,`wardplacedpm`,`wardclearedpm`,`wardplacedshare`,`wardclearedshare`,`cspm`) VALUES $str ON DUPLICATE KEY UPDATE $yaya");
$x++;
}
mysql_query在工作,但是后來我在$ yaya中添加了更多值,並且現在不工作。 我沒有錯過任何逗號,我檢查了一下。 它沒有更新或插入。
“您的SQL語法有錯誤;請查看與您的MySQL服務器版本相對應的手冊,以正確使用語法'kill = kill + 0,death = death + 1,assist = Assist + 14,cs = cs + 28,cspm =第1行的csp'”
第1行的'kill = kill + 0,death = death + 1,assist =助攻+ 14,cs = cs + 28,cspm = csp'
$ yaya看起來像什么
kill = kill + 0, death = death + 1,assist = assist + 14,
cs = cs + 28, cspm = cspm + 1, takim = DP,
dmg = dmg + 3.0, dpm = dpm + 110,wardplaced = wardplaced + 43,
oynananoyun = oynananoyun + 1, win = win + 1 , rol = Support,
gold = gold + 7.7b, goldshare = goldshare + 14.1,
gpm = gpm + 283, fb = fb + 0,
dmgshare = dmgshare + 6.4, wardcleared = wardcleared + 9,
wardplacedpm = wardplacedpm + 1.58,
wardclearedpm = wardclearedpm + 0.33,
wardplacedshare = wardplacedshare + 29.6,
wardclearedshare = wardclearedshare + 31
編輯:我將yaya字符串更改為
$yaya = "`kill` = `kill` + {$playerkills[$x]},
death = death + {$playerdeaths[$x]},
assist = assist + {$playerassists[$x]},
cs = cs + {$creeps[$x]},
cspm = cspm + {$cspms[$x]},
takim = '{$teams[$x]}',
dmg = dmg + {$dmgs[$x]},
dpm = dpm + {$dpms[$x]},
wardplaced = wardplaced + {$wards[$x]},
oynananoyun = oynananoyun + 1,
win = win + {$sonucs[$x]},
rol = '{$rols[$x]}',
gold = gold + '{$playergolds[$x]}',
goldshare = goldshare + {$goldpercantages[$x]},
gpm = gpm + {$gpms[$x]}, fb = fb + {$fbs[$x]},
dmgshare = dmgshare + {$dmgpercantages[$x]},
wardcleared = wardcleared + {$wardscleared[$x]},
wardplacedpm = wardplacedpm + {$wpm[$x]},
wardclearedpm = wardclearedpm + {$wcpm[$x]},
wardplacedshare = wardplacedshare + {$wardpercents[$x]},
wardclearedshare = wardclearedshare + {$wardsclearedpercents[$x]}";
我將kill改為kill
,將{$ playergolds [$ x]}更改為'{$ playergolds [$ x]}”,因為它具有“ b”(例如6.6b並引用了varchars(不確定是否有必要))。
由於rol
是VARCHAR
,因此您需要在該值rol
加上引號。
rol = {$rols[$x]}
應該:
rol = '{$rols[$x]}'
您可以在$yaya
的值中看到:
rol = Support
它應該是
rol = 'Support'
如果您將預查詢與PDO或mysqli一起使用,則不會有這樣的問題。
另一個問題是, kill
是保留字。 要將其用作列名,您需要使用反引號對其進行轉義:
`kill` = `kill` + {$playerkills[$x]}
同樣,當使用ON DUPLICATE KEY UPDATE
,您不需要重復VALUES
列表中的所有值。 你可以寫
rol = VALUES(rol)
這意味着更新應該使用與沒有重復鍵時插入的值相同的值。 所以你可以這樣寫:
$yaya = "`kill` = `kill` + VALUES(`kill`), death = death + VALUES(death), assist = assist + VALUES(assist),
cs = cs + VALUES(cs), cspm = cspm + VALUES(cspm), takim = VALUES(takim), dmg = dmg + VALUES(dmg),
dpm = dpm + VALUES(dpm), wardplaced = wardplaced + VALUES(wardplaced),
oynananoyun = oynananoyun + 1, win = win + VALUES(win), rol = VALUES(rol),
gold = gold + VALUES(gold), goldshare = goldshare + VALUES(goldshare), gpm = gpm + VALUES(gpm),
fb = fb + VALUES(fb), dmgshare = dmgshare + VALUES(dmgshare), wardcleared = wardcleared + VALUES(wardcleard),
wardplacedpm = wardplacedpm + VALUES(wardplacedpm), wardclearedpm = wardclearedpm + VALUES(wardclearedpm),
wardplacedshare = wardplacedshare + VALUES(wardplacedshare), wardclearedshare = wardclearedshare + VALUES(wardclearedshare)";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.