2015-08-19 48 views
1

我使用PHP Codeigniter的插入方法輸入日誌數據,但在Mysql數據庫中獲取兩條完全相同的記錄。我的代碼如下所示:PHP執行一個插入SQL,但在數據庫中添加兩條記錄

public function add_practise_log($user_id, $question_id, $selected, $is_correct) 
{ 
    $log_data = array(
     'user_id' => $user_id, 'question_id' => $question_id, 'selected' => $selected, 
     'is_correct' => $is_correct, 'practise_time' => date('Y-m-d H:i:s') 
    ); 

    $this->db_write->insert(TABLE_QUESTION_PRACTISE_LOG, $log_data); 

    return; 
}` 

我保證這個代碼只是只執行一次,但在Mysql一般的日誌我發現了兩個相同的插入查詢:

4198 Query INSERT INTO question_practise_log 
(user_id, question_id, selected, is_correct, practise_time) 
VALUES ('20037', 6, 'option_c', 0, '2015-08-19 18:26:19') 

4198 Query INSERT INTO question_practise_log 
(user_id, question_id, selected, is_correct, practise_time) 
VALUES ('20037', 6, 'option_c', 0, '2015-08-19 18:26:19')` 

4198是連接ID,我是如此對這個mysql活動感到困惑。

有沒有人遇到過這種情況,或者有人可以解釋這種奇怪的行爲。

BTW,也有一些其他的方法來插入記錄,但這種情況只有在此表時發生

+1

你的控制器代碼在哪裏?這是什麼'$ this-> db_write'? –

+0

這似乎與你的方法調用有關。它在哪裏以及如何被稱爲? –

+0

我不認爲它與方法調用有關,我調試一步一步和var_dump'$ this-> db_write-> queries'包含所有在http請求中執行的查詢,那裏只有一個關於哪個I的查詢如上所述。 '$ this-> db_write'是連接obj,就像'Coderinter'中的'$ this-> db'一樣, –

回答

0

最好寫這個 $這個 - > DB->插件(「question_practise_log」,$ log_data);

+0

'TABLE_QUESTION_PRACTISE_LOG'是'question_practise_log'的常量。插入呼叫有不同之處嗎? –

+0

雅我覺得這樣..有上面的代碼爲你工作? –

+0

它沒有效果 –

相關問題