2012-03-29 84 views
1

我正在使用Codeigniter和Active Record类在PHP中构建一个简单的API。 我得到了一张IP地址作为主键的表格,这里是我的问题:PHP中的数据库错误处理

对数据库运行查询以检查IP是否存在插入数据的函数运行时,然后执行插入数据的第二个查询(如果IP不存在)或尝试插入数据并解析“重复条目”或其他内容的错误消息。所以我只用1个DB查询这个。

所以它基本上是PHP验证与MySQL验证。那么哪种技术更好和/或更快。

谢谢。

+0

个人而言,我会使用try/catch并解析MySQL中的重复记录错误消息。这样,你只有1个查询('INSERT INTO..')与两个查询(检查是否存在,如果不插入)。 – 2012-03-29 13:44:34

回答

1

考虑使用ON DUPLICATE KEY UPDATE语法。阅读更多关于此:http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html 但是,如果它不是在你的情况下比我会去与PHP验证,因为在MySQL触发一个错误是不是一个好主意。

+0

我认为Codeigniter的活动记录类不幸没有此功能 – Stefan 2012-03-29 13:49:24

+1

检查此线程的最后一个答案:[http://stackoverflow.com/questions/3361490/how-would-i-use-on-duplicate-key- update-in-my-codeigniter-model](http://stackoverflow.com/questions/3361490/how-would-i-use-on-duplicate-key-update-in-my-codeigniter-model) – erdeszt 2012-03-29 13:51:55

+0

I'我们来看看吧,谢谢! – Stefan 2012-03-29 13:54:49