php - 查询更新导致巨大的意外数字

标签 php mysql

我的 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'; 
    }

}

最佳答案

如果这是您用来保存分数的唯一脚本,难怪人们为了获得高分而作弊 - 为了防止它,您需要对参数插入一些加密,并添加一些基于 session 和时间的保护脚本

关于php - 查询更新导致巨大的意外数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10376356/

相关文章:

php - 搜索关键字并应用过滤器

php - SoapFault 异常 : [HTTP] SSL support is not available in this build

mysql - MYSQL错误未加载SQL

PHP将图像转换为二进制文件测试

php - 尝试显示 BLOB 时显示损坏的图像图标

php - 查询不插入,但也不报错

MySQL数据库设计

php - 仅搜索部分数据库字符串时打印数据库字符串(通过 PHP 语句)

php - 用Jquery-Ajax不充值菜单刷新页面

php - 在 php 页面中将链接显示为启用超链接的 mysql 输出,但出现错误