许多插入/更新都会阻止MySQL使用Ajax/PHP在我的Joomla站点上工作

许多插入/更新都会阻止MySQL使用Ajax/PHP在我的Joomla站点上工作,php,mysql,ajax,joomla,connection,Php,Mysql,Ajax,Joomla,Connection,我目前正在Unix服务器上开发Joomla网站。目前没有用户连接,因为我是唯一可以访问它的人(因此没有拥挤的流量)。在测试过程中,我对MySql数据库的一个表进行了几次插入或更新。插入/更新是使用对php文件的Ajax调用触发的,该文件使用jFactory::getDBO()处理连接,执行插入或更新,并向Ajax返回成功响应。一切都很完美。但是,如果我快速连续地运行几个测试,过了一段时间,即使我在Ajax中仍然得到了成功的响应,也不会执行插入或更新(不是在这个表上,也不是在任何其他表上)。就像M

我目前正在Unix服务器上开发Joomla网站。目前没有用户连接,因为我是唯一可以访问它的人(因此没有拥挤的流量)。在测试过程中,我对MySql数据库的一个表进行了几次插入或更新。插入/更新是使用对php文件的Ajax调用触发的,该文件使用jFactory::getDBO()处理连接,执行插入或更新,并向Ajax返回成功响应。一切都很完美。但是,如果我快速连续地运行几个测试,过了一段时间,即使我在Ajax中仍然得到了成功的响应,也不会执行插入或更新(不是在这个表上,也不是在任何其他表上)。就像MySql阻止了所有的连接(但我没有收到任何错误消息)。我试着打开一个不同的浏览器,神奇地插入/更新从那里完美地工作。我想我注意到,当我关闭原始浏览器并再次打开它时,它也会重新开始工作。问题可能是什么?我该怎么解决呢?我一直在寻找一种在每次查询后关闭getDBO()连接的方法,但我在网上发现的是,在Unix服务器上,这种类型的连接在每次查询后都会自动关闭。非常感谢您的支持

编辑:

这是执行插入/更新的方式:

if(isset($step) && !empty($step) && trim($step) != ""){

    $sql = "UPDATE #__thamatho_student_mistakes SET   
    date_mistake='".$date."', answer='".addslashes($answer)."' WHERE 
    student=".$userid." and step=".$steid;
    $db->setQuery($sql);
    $db->query();

}else{  

    $sql = "Insert into #__thamatho_student_mistakes (`student`, 
    `step`, `answer`, `date_mistake`) values (".$userid.", ".$steid.", 
    '".addslashes($answer)."', '".$date."')";
    $db->setQuery($sql);
    $db->query();

}

这个问题实际上与MySQL无关,但更可能与一些防火墙设置或防止洪水泛滥的Apache设置有关,这是因为您使用的是Ajax(这意味着每次调用insert时都会尝试刷新新页面)。检查Apache和防火墙设置-问题就在那里


我们写了一篇关于类似事情的帖子

试着在上问你的问题;)非常感谢!!我会调查它,并会让你知道这是否是因为一些防火墙或Apache设置。