MySQLi Transaction Server消失了

时间:2013-11-14 09:37:17

标签: php mysqli

我使用以下代码在数据库中使用mysqli事务插入一些订单。有时它的工作没有任何问题,有时它只是在1分钟后抛出错误说:" Mysqli服务器消失了#34;。当我在错误之后触发相同的事情时它才起作用。 php文件是通过jquery post触发的。

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);"它一直有效。

它也适用于我使用的其他递归函数。

您可以使用模拟帐户按钮登录ur.ready2order.at。然后你可以打电话: http://ur.ready2order.at/views/order.dev.php?t_id=155

此网站使用提及脚本。有时候mysqli服务器消失了......有时候没有。 单击白色按钮可将产品放入订单列表,按钮的蓝色部分将打开侧面和注释功能。

提前致谢

2 个答案:

答案 0 :(得分:0)

有关于它的文档:MySQL server has gone away

尝试更改wait_timeout或提高脚本速度。

答案 1 :(得分:0)

我发现了这个问题。当我使用mysql重建我的代码到mysqli时,我忘了重写一个小函数。这导致错误,因为它仍在寻找mysql()。

对不起伙计们,谢谢。