如何捕获codeigniter重复条目查询错误

时间:2018-02-03 11:43:16

标签: sql database codeigniter codeigniter-3 race-condition

将数据插入MySQL中的表时会出现争用情况。我检查没有重复的密钥,但有时还有另一个PHP线程做同样的事情:

DEBUG - 2018-02-03 03:40:41 --> [9GH212VT] SELECT * FROM `device_cache` WHERE `md5sum` = '4fd43e58b0a538a0d97e4b8074b0aa80'; - 7.2002410888672E-5
DEBUG - 2018-02-03 03:40:41 --> [DLZ6FPAE] INSERT INTO `device_cache` (`md5sum`, `user_agent`, `data`) VALUES ('4fd43e58b0a538a0d97e4b8074b0aa80', '...'); - 0.10529589653015
ERROR - 2018-02-03 03:40:41 --> [QCSUMNJ5] Query error: Duplicate entry '4fd43e58b0a538a0d97e4b8074b0aa80' for key 'PRIMARY' - Invalid query: INSERT INTO `device_cache` (`md5sum`, `user_agent`, `data`) VALUES ('4fd43e58b0a538a0d97e4b8074b0aa80', '...') 

我想知道是否可以捕获此错误,Codeigniter在发现此错误时终止执行。

1 个答案:

答案 0 :(得分:0)

在application / config / database.php中设置

$db['default']['db_debug'] = FALSE;

并且Codeigniter不会停止执行