2011-08-09 27 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に接続する際の問題だと思って、それが3回挿入されるまで再試行しますか?

フロントエンドをテストして、その機能が実際に複数回呼び出されるかどうかを確認しましたが、何も問題はありませんでした。

+0

を使用して試すことができます。 – s3v3n

+0

これを試してみると、関数は一度呼び出されていますが、SQL内の何かが別のタイムスタンプで3回挿入されます。 – triq

+1

このINSERT文は一度実行すると複数のレコードを追加しません – wonk0

答えて

0

あなたのコードは、ほぼ確実にある種の可変ループ内になければなりません。このコードは、wonkのように、今までに複数のレコードを追加することはありません。

+0

私が持っている唯一のループは、ブラウザ側で、クライアント、サブメニューを選択するネストループがあり、最後にこのデータベースコマンドをトリガするジョブを実行すると、ループはデータベース部分とは関係ありません。 – triq

+0

これはあなたのコードをより多く投稿することです。この行だけでは複数の挿入が発生していません。これをテストするには、このコード行を他のコードなしで試してみてください。このコードをある種のajax呼び出しに結びつけていますか? – Caimen

0

これは非常に助けになることはありませんが、あなたは関数内でエコーを入れて、代わりにそれを警告する出力に含まに何かを印刷してみてくださいthis-

$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のように次のように言った。いくつかの種類のテキストをエコーし​​て、それが3回印刷されているかどうかを確認してください。 – Aniket