做的一个提交试卷的处理,事务处理。
try{
require_once("../function/connectMysql.php");
$conn = connectMysql();
mysqli_query($conn,"SET AUTOCOMMIT=0");
mysqli_begin_transaction($conn); // 开始事务定义
for($j;$j<$count;++$j)
{ if($j<$Acount){
if($choose[$j]==$ans[$j])
{
$sum+=3;
//echo "对一道单选题,总分为:",$sum."<br/>";
$sql="insert into tbl_Student_Answer (StuNo,QOptionID,RightAnswer,Answer,score,CourseNo) values ('$No','$QNo[$j]','$ans[$j]','$choose[$j]',3,'$CourseNo')";
$conn->query($sql);
//echo $sql;
}
else{
$sql="insert into tbl_Student_Answer (StuNo,QOptionID,RightAnswer,Answer,score,CourseNo) values ('$No','$QNo[$j]','$ans[$j]','$choose[$j]',0,'$CourseNo')";
$conn->query($sql);
//echo $sql;
}
} //3553 10
else if($j>=$Acount&&$j<$Acount+$Bcount){
$mchoose[$i]=implode("",$choose[$j]);
if($mchoose[$i]==$ans[$j]) {
$sum+=5;
//echo "对一道多选题,总分为:",$sum."<br/>";
$sql="insert into tbl_Student_Answer (StuNo,QOptionID,RightAnswer,Answer,score,CourseNo) values ('$No','$QNo[$j]','$ans[$j]','$mchoose[$i]',5,'$CourseNo')";
$conn->query($sql);
//echo $sql;
$i++;
continue;
}
else
{
$sql="insert into tbl_Student_Answer (StuNo,QOptionID,RightAnswer,Answer,score,CourseNo) values ('$No','$QNo[$j]','$ans[$j]','$mchoose[$i]',0,'$CourseNo')";
$conn->query($sql);
//echo $sql;
}
/*if(strpos($ans[$j],$mchoose[$i])!==false){
$sum+=1;
//echo "半对一道多选题,总分为:",$sum;
echo $i++;
continue;
}*/
$i++;
}
else if($j>=$Acount+$Bcount&&$j<$Acount+$Bcount+$Ccount){
//echo strcmp($Fill[$m],$ans[$j]);
if(strcmp($choose[$j],$ans[$j])!=0){
$sql="insert into tbl_Student_Answer (StuNo,QuestionNo,RightAnswer,Answer,score,CourseNo) values ('$No','$QNo[$j]','$ans[$j]','$choose[$j]',0,'$CourseNo')";
$conn->query($sql);
//echo $sql;
continue;
}
else
{
$sum+=5;
//echo "$choose[$j] == $ans[$j] +5分"."<br/>";
echo "对一道判断题,总分为:",$sum."<br/>";
$sql="insert into tbl_Student_Answer (StuNo,QuestionNo,RightAnswer,Answer,score,CourseNo) values ('$No','$QNo[$j]','$ans[$j]','$choose[$j]',5,'$CourseNo')";
$conn->query($sql);
//echo $sql;
$m++;
}
}
else if($j>=$Acount+$Bcount+$Ccount&&$j<$Acount+$Bcount+$Ccount+$Dcount){
$Fill[$m]=$choose[$j];
//echo strcmp($Fill[$m],$ans[$j]);
if(strcmp($Fill[$m],$ans[$j])!=0){
$m++;
$sql="insert into tbl_Student_Answer (StuNo,QuestionNo,RightAnswer,Answer,score,CourseNo) values ('$No','$QNo[$j]','$ans[$j]','$choose[$j]',0,'$CourseNo')";
$conn->query($sql);
//echo $sql;
continue;
}else{
$sum+=3;
//echo "对一道填空题,总分为:",$sum."<br/>";
$sql="insert into tbl_Student_Answer (StuNo,QuestionNo,RightAnswer,Answer,score,CourseNo) values ('$No','$QNo[$j]','$ans[$j]','$choose[$j]',3,'$CourseNo')";
$conn->query($sql);
//echo $sql;
$m++;
}
}
else if($j>=$Acount+$Bcount+$Ccount+$Dcount&&$j<$Acount+$Bcount+$Ccount+$Dcount+$Ecount){
$Sub[$n]=$choose[$j];
$sql="insert into tbl_Student_Answer (StuNo,QuestionNo,RightAnswer,Answer,CourseNo) values ('$No','$QNo[$j]','".$data[$j]['RightAnswer']."','$choose[$j]','$CourseNo')";
$conn->query($sql);
//echo $sql;
$n++;
}
}
//echo "总分为:",$sum;
//echo "<br/>";
$conn->commit();
}
catch(PDOException $e)
{
$conn->rollback();
//echo $e->getMessage();
}