【发布时间】:2014-01-04 14:19:15
【问题描述】:
我正在使用 foreach 循环数组并更新 MySQL 数据库。 这是我的代码
foreach($result['getHiscore'] as $highScoreType => $highScoreValues){
$rank = $highScoreValues['rank'];
$lvl = $highScoreValues['lvl'];
$totalXp = $highScoreValues['totalxp'];
mysqli_query($con,"UPDATE Users SET Level("$highScoreType") = $lvl, Xp("$highScoreType") = $totalXp,
WHERE UserID= '1'");
}
我试图将“级别”这个词与 $highScoreType 的内容混为一谈,我的数据库中的列标题是 Leveloverall、Xpoverall、Levelattack、Xpattack 等等,所以我打算保持 Level/Xp 标题不变只需更改密钥即可。
这对我来说看起来不错,当我使用预设值测试 sql 时,它更新得很好,但是使用变量根本不会更新。我知道变量正确地从数组中出来,因为当我将它们与 foreach 内联时,它们以正确的格式和顺序打印出来。
是我的格式问题还是我遗漏了其他东西?
【问题讨论】:
-
对
("$highScoreType")使用单引号,就像在('$highScoreType')中一样,对另一个使用相同的引号。