我的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';
}
}
请停止使用古老的'mysql_ *'函数编写新代码。他们不再被维护,社区已经开始[弃用流程](http://news.php.net/php.internals/53799)。相反,您应该了解准备好的语句并使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/mysqli)。如果你关心学习,[这里是一个很好的PDO相关教程](http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers)。 –