0

我有一个新配置的服务器。

我正在 MYSQL 中尝试简单的插入语句。

我的代码如下

 $stmt=mysqli_prepare($this->db->initCon(),
 "INSERT INTO user_exam_taken
 (user_exam_id, completed, last_question_id, mode, question_ids, time_elapsed, score) 
 VALUES ('".$request->user_exam_id."', '".$request->completed."', 
 '".$request->last_question_id."', '".$request->mode."', '".$request->question_ids."',
 '".$request->time_elapsed."', '".$request->score."');");  
 // This is the entire insert and its not in a loop
 mysqli_stmt_execute($stmt);

执行上述插入语句后,如果我查看表,会插入多行。但是脚本只运行一次。

我验证我还在该表中放置了一个类型为时间戳(CURRENT_TIMESTAMP)的字段,它将显示当前时间戳值,并且在执行插入语句之后,这对于多条记录是相同的。

更新:

在下面找到整个功能

function addExamResults(Exam_ResultVO $request)
        {
            $stmt=mysqli_prepare($this->db->initCon(),"INSERT INTO `user_exam_taken` (`user_exam_id`, `completed`, `last_question_id`, `mode`, `question_ids`, `time_elapsed`, `score`) VALUES ('".$request->user_exam_id."', '".$request->completed."', '".$request->last_question_id."', '".$request->mode."', '".$request->question_ids."', '".$request->time_elapsed."', '".$request->score."');");
            mysqli_stmt_execute($stmt);
            $request->id=$this->db->getLastInsertId();
            return $request;
        }

我正在使用 amfphp 编写具有此功能的服务类,前端是 Flex 应用程序。

正如我所说,整个应用程序在另一台服务器上运行良好,但最近它被转移到AWS 服务器上

4

1 回答 1

0

由于上面的代码没有办法插入多行,除非:

  • 该脚本被多次调用。您可以通过使用 firebug 或fiddler来监控浏览器中的请求来验证这一点。
  • 存在导致重复的触发器。

此外,多次刷新页面也会导致多次插入。

拥有更多代码以查看其他地方是否存在问题将有所帮助。

于 2013-09-18T08:41:25.603 回答