使用PHP更新MySQL DB

时间:2013-12-17 00:24:25

标签: php mysql

我正在使用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'");

}

我正在尝试将“level”这个词与$ highScoreType的内容混为一谈,我的数据库中的列标题是Leveloverall,Xpoverall,Levelattack,Xpattack等等所以我打算保持Level / Xp标题不变只是改变了关键。

这对我来说很好看,当我用预先设定的值测试sql时它更新很好,但是使用变量根本不会更新。我知道变量正确地从数组中出来,就像我用它们以正确的格式和顺序打印出来的内联回声一样。

这是我的格式问题还是我错过了其他的东西?

1 个答案:

答案 0 :(得分:0)

如果您回显生成的SQL查询,该查询应该可以帮助您查看查询中的任何问题。

我看起来很奇怪:UPDATE Users SET Level("$highScoreType") = $lvl

不应该只是UPDATE Users SET $highScoreType = $lvl吗?

还要注意这种代码对于SQL注入攻击是脆弱的,因此请始终警惕这些变量中的内容。

要打印查询,请执行以下操作:

$query = "UPDATE Users SET Level("$highScoreType") = $lvl,     Xp("$highScoreType") = $totalXp,   WHERE UserID= '1'"
echo $query
mysqli_query($con, $query)