php - Ajax请求导致服务器崩溃

标签 php mysql ajax

我有一个网站,学生可以在其中进行在线测验。每次他们选择一个答案(用于多项选择的单选按钮)时,都会执行以下代码:

$('input:radio').click(function(){
var questionId = $(this).parent().parent().find('.qid').val();
var answer = $(this).val();
$.ajax({
        type: "POST",
        url: "insertqanswerajax.php",
        data: {questionId: questionId, answer: answer},
    });

});

insertqanswerajax.php 代码:

<?php session_start();
include_once('../includes/connect.php');     //connect to database
include_once('../functions/quizfunctions.php');   //all functions
$userSubject = $_SESSION['subject'];
$userGradeLevel = $_SESSION['gradeLevel'];
$userId = $_SESSION['userId'];
$questionId = $_POST['questionId'];
$answer = $_POST['answer'];



insertQuizAnswer($questionId, $userId, $answer, 1);
$DB = null;

?>

和 insertQuizAnwer 函数:

function insertQuizAnswer($questionId, $userId, $answer, $testId){
global $DB;                                          
$standardsHandle = $DB->prepare("INSERT INTO quizanswers (questionid, userid, answer, testid)
                                VALUES (:questionId, :userId, :answer, :testId)
                                ");   //get all benchmark grades for user
$standardsHandle->bindParam(':questionId', $questionId);
$standardsHandle->bindParam(':userId', $userId);
$standardsHandle->bindParam(':answer', $answer);
$standardsHandle->bindParam(':testId', $testId);
$standardsHandle->execute();
$standardsHandle = null;
}

代码工作正常,直到数量变大(几百个用户进行测试)。服务器崩溃,您会收到默认的 500 错误,网站会在一两分钟后恢复。您只需反复单击一个单选按钮即可复制该错误。

我的内存限制是 524 MB,可能高于我的计划实际允许的值。

这部分代码存在的原因是为了保存用户的答案,这样他们就可以稍后再回来,或者在学校网络掉线(确实如此)的情况下从上次中断的地方继续。

我使用的是共享托管计划,我知道它有其局限性,我正在尝试确定是否有办法实现此目的,或者我的共享计划是否根本无法实现此目的。

最佳答案

这是您的托管问题。 要解决此问题,您必须购买具有更大带宽的托管计划(以同时处理多个请求)。您可以与您的托管提供商讨论此问题。

关于php - Ajax请求导致服务器崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20018451/

相关文章:

php - Facebook 图形 API + PHP SDK : get the URL of the large user picture

mysql - SQL查询条件按日期获取数据

php - DB::Laravel 4 中的分页失败

php - 是否可以阻止 Zend Studio 像这样格式化嵌入式 PHP?

php - Magento,添加没有可配置产品的服装尺寸属性

sql - 如何在 MySQL 中强制执行复合唯一性?

javascript - ajax 上的 jQueryclearTimeout 成功变得困惑并且不清除以前的超时

javascript - jQuery/JavaScript 变量作用域

javascript - 如何使用 PHP 和 jQuery 将 (.OBJ) Blob 文件上传到服务器?

php - 通过客户端上传(.sql 文件)在 PHP 中恢复 MySQL 数据库