我使用以下代码在数据库中插入一些带有 mysqli 事务的订单。有时它可以正常工作,有时它只是在 1 分钟后抛出一个错误:"Mysqli 服务器消失了"。当我在错误后触发同样的事情时,它就可以工作了。php文件是通过jquery帖子触发的。
function InsertOrder($children){
global $mysqli;
foreach($children as $child){
InsertOrder();
}
}
require('../../sys/connect.php');
$mysqli->autocommit(FALSE);
$error = false;
foreach($_POST){
InsertOrder($children);
}
if(!$error)
{
$mysqli->commit();
die("done");
} else
{
$mysqli->rollback();
die(getLanguageKey("label_mysqli_rollback",array($error)));
}
这只是我的代码的精简版本,但仅此而已。如果我删除"$mysqli->autocommit(FALSE);",它一直有效。
它也适用于我使用的其他递归函数。
您可以使用模拟账户按钮在 your.ready2order.at 登录。然后你可以打电话:http://ur.ready2order.at/views/order.dev.php?t_id=155
本网站使用提及脚本。有时mysqli服务器消失了...有时不是。单击白色按钮将产品放入订单列表,按钮的蓝色部分打开配菜和评论功能。
提前致谢
有关于它的文档: MySQL 服务器已消失
尝试更改wait_timeout或提高脚本的速度。
我发现了这个问题。当我从使用 mysql 到 mysqli 重建代码时,我忘了重写一个小函数。这导致了错误,因为它仍在查找 mysql()。
对不起,伙计们,谢谢。