2011-08-09 96 views
0

我執行一個簡單的插入查詢,但是這個插入有時會意外地完成多次。對於插入的代碼是:codeigniter mysql查詢問題

$query=$this->db->query("INSERT INTO clientaccesshistory (jobid, clientid,firstname,lastname,clientname,menu,submenu,starttime) VALUES ('$time','$userID','$firstname','$lastname','$clientname','Monitor/Verify', '$this->job_name',current_timestamp())"); 

當我看到在數據庫中,雖然這些信息有時是有3次,有時它只是一次像它應該是。我認爲這是連接到MySQL的一些問題,然後重試,直到它插入三次?

我測試了前端,看看該函數實際上是否被多次調用,但是沒有任何問題。

+0

嘗試把回波在功能和打印一些東西到輸出中,而不是提醒它的。 – s3v3n

+0

試過了,該函數被調用一次,它在sql中的某些內容使用不同的時間戳插入三次 – triq

+1

這個INSERT語句在執行一次時不會添加多個記錄 – wonk0

回答

0

你的代碼幾乎肯定必須在某種變量循環中。像wonk所說的,這個代碼不會增加一個以上的記錄。

+0

我唯一的循環是在瀏覽器端,有嵌套循環來選擇一個客戶端,子菜單,並最終運行一個觸發這個數據庫命令的作業,循環與數據庫部分無關 – triq

+0

唯一的方法是這是爲了發佈更多的代碼。這條線本身不會導致多重插入。爲了測試它,它自己嘗試這一行代碼,沒有任何其他代碼。這個代碼是否與某種類型的ajax調用綁定? – Caimen

0

這會不會是有很大幫助,但你可以嘗試使用這個 -

$arr = array(
jobid => $time, 
clientid => $userID, 
firstname => $firstname, 
lastname => $lastname, 
clientname => $clientname, 
menu => 'Monitor/Verify', 
submenu => $this->job_name, 
starttime => current_timestamp() 
); 

$this->db->insert('clientaccesshistory', $arr); 
+0

嘗試過,同樣的事情 – triq

+0

然後,就像Caimen在下面的回覆中說的那樣,這肯定是在一些循環中。您應該嘗試回顯某種文本,並查看它是否正在打印三次。 – Aniket