gpt4 book ai didi

php - MySQL insert 写入的值与我输入的值不同

转载 作者:太空宇宙 更新时间:2023-11-03 11:47:51 24 4
gpt4 key购买 nike

我刚刚在 Amazon Linux 实例中设置了一个 LAMP 服务器。一切正常,我与数据库的所有连接都运行良好。

但是我遇到了一个我无法弄清楚的问题。我正在研究一个考试系统,我想给每个要参加考试的学生一个随机 ID。我不需要有关学生的任何信息,因此我没有任何可用作唯一标识符的相关字段。

$id_escuela=2;
$id_grupo=$_POST['grado'];
$id_eval=rand(1,9999999999);
$sql = "INSERT INTO pinion_evalua (id_eval,id_escuela,anio) VALUES (".$id_eval.",".$id_escuela.",".$id_grupo.")";

在我的本地服务器上一切正常,我每次都得到随机数,但是当我将文件上传到 Amazon 服务器时,我卡在一个特定的数字 (2147483647) 上,即使随机数的结果不同.例如,我得到:

Error: INSERT INTO pinion_evalua(id_eval,id_escuela,anio) VALUES (4612160288,1,2)
Duplicate entry '2147483647' for key 'id_eval'

这怎么可能?我尝试删除随机部分并使用自动增量,但我仍然收到相同的数字。我什至尝试减小 int 的大小,但我仍然得到数字,即使它违反了该领域的规则。这让我发疯。

你们中的任何人都可以给我一些可能出错的提示吗?

问候。

最佳答案

你那几行代码有很多问题:

  • 您显然是在 32 位系统上运行 PHP,并试图获得一个比这更大的随机值。
  • 既然你不关心分配的 id,为什么不在 MySQL 中使用一个自动递增的数字呢?
  • 您的代码容易受到 SQL 注入(inject)的影响,这可以通过输入 3) 轻松证明); delete pinion_evalua where (1 = 1。正确的解决方案是使用 PHP manual 中记录的准备好的语句。

关于php - MySQL insert 写入的值与我输入的值不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37495040/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com