【发布时间】:2012-12-07 18:10:39
【问题描述】:
当我像这样在 PHP 中向 MySQL 发送值时:
$mysqli->query("update bank set cash = $cash");
它适用于较小的数字,但任何 100 万亿或更大的数字都会产生意想不到的结果。有时它会以 100 为增量更新数字,有时则根本不更新。
一旦数量超过几十亿,准备好的语句也会有不同但不可靠的结果:
$stmt->prepare("update bank set cash = ?");
$stmt->bind_param('i',$new_cash_amt);
$stmt->execute();
【问题讨论】:
-
$mysqli->query('update player_stats set cash = cash + '.$amount.' where username = "cheater2"'); -
您在 db 中给出的 int 或数据类型的大小是多少?
-
看来我对我的问题提出了质疑。我正在使用 mt_rand 获取一个变量,然后将其发送到 add_cash() ,然后它仅以 10 或 100 的间歇增量更新。我想知道这是否是类型问题。奇怪的是,当我使用其他变量运行 add_cash 时,我没有遇到这个问题。我正在更新我的问题。