我的 hiscore 表有一些问题。有些玩家很快就获得了很多分数,甚至更多。我在下面发布了两个代码:
第一个是我目前使用的,导致问题:
$name = mysql_real_escape_string($_POST['name']);
$set = mysql_real_escape_string($_POST['set']);
if ($set == 1 && isset($_POST['score']))
{
$score = mysql_real_escape_string($_POST['score']);
$query = mysql_query("UPDATE users SET totalScore=totalScore + '$score' WHERE username='$name'");
if ($query)
{
echo 'success';
}
else {
echo 'error';
}
}
我尝试在下面的代码中将分数转换为 int,但更新结果是一个巨大的数字(4294967295),要设置为 totalScore。totalScore 是 int(25) 类型,我将属性设置为无符号,这样玩家就不能以负数结束。
请帮忙谢谢
$name = mysql_real_escape_string($_POST['name']);
$set = (int)$_POST['set'];
if ($set == 1 && isset($_POST['score']))
{
$score = (int)$_POST['score'];
$query = mysql_query("UPDATE users SET totalScore=totalScore + $score WHERE username='$name'");
if ($query)
{
echo 'success';
}
else {
echo 'error';
}
}