2011-08-09 57 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