用户数据有一半未插入数据库

User data not inserted in the database half of the times

在我的网站上,我有一个注册表格供新用户使用。
当我注册一个帐户,或者当我的朋友尝试时,过程成功并且数据被插入到数据库中。

问题是,当来自世界各地的其他人注册帐户时,大多数时候会发生这种情况:
1) 进程成功,没有抛出任何错误。
但是
2) 没有数据插入数据库。

数据库连接创建于:

// Connecting to the database
$database = new mysqli($DatabaseServer, $DatabaseUser, $DatabasePass, $DatabaseName);

在注册过程中插入数据:

$stmt = $database->prepare("INSERT INTO `users` (`username`, `password`, `email`, `email_activation_code`, `name`, `active`, `ip`, `date`) VALUES (?, ?, ?, ?, ?, ?, ?, ?)");

$stmt->bind_param('ssssssss', $_POST['username'], $password, $_POST['email'], $email_code, $_POST['name'], $active, $_SERVER['REMOTE_ADDR'], $date);
$result = $stmt->execute();
$stmt->close();

到目前为止我已经尝试过:
- 使用 vpn 从多个位置注册,并从不同的物理位置注册,全部成功。
-我已经记录了注册失败时使用的数据(在用户许可的情况下)。
没什么奇怪的,我用他的数据就可以完美注册账号
执行此操作时,我们大约同时尝试了它,而我打开了数据库,所以我确定数据库当时是 运行 (或者由于缺少连接而应该抛出错误) .
-我试着记录了 $stmt->error_list 结果什么都没有(因为没有抛出错误)。
- 使用 'try catch' 捕获的正常错误也不会产生任何结果,因为同样不会抛出任何错误。

我在将数据库更新到 mariadb 10.3.20 后注意到了这个问题。现在版本为 10.3.22。

我现在不知道该去哪里找了,因为只有一部分注册过程失败了。
任何方向都值得赞赏。

我们再次检查了所有这些,包括注册过程失败和成功的少数登录用户的代码和数据库。

问题不在于代码,而在于数据库本身。以前的维护者将存储 ip 的列设置为 varchar(32),这对于 Ipv4 地址足够,但对于 IPv6 地址则不够。 我们已将该列更改为 varchar(64),因此地址再次适合。这似乎解决了问题...除非有其他问题,但在新用户尝试再次注册之前我不会知道。

错误没有记录在任何日志中,这仍然很奇怪。根据评论下给出的评论,我将尝试弄清楚为什么它没有被记录下来,它假装一切都很好,我将确保任何新的错误都会被记录下来。
感谢您的帮助。