用户
 找回密码
 入住 CI 中国社区
搜索
查看: 6275|回复: 3
收起左侧

[数据库] 自主捕获数据库异常

[复制链接]
发表于 2010-7-6 12:55:05 | 显示全部楼层 |阅读模式
本帖最后由 redtamo 于 2010-7-7 14:01 编辑

举例:
我有个订单表pay_order_form,其中有个字段order_sn,order_sn有唯一约束
使用如下语句进行插入操作
PHP复制代码
$this->db->insert('pay_order_form',$data);
复制代码

如果order_sn出现重复,sql就会报错。
如果数据库设置中db_debug=true则会以如下方式报错,否则直接显示空白
SQL复制代码
 
Error NUMBER: 1062
Duplicate entry '9619079e367011df' FOR KEY 'order_sn'
INSERT INTO `pay_order_form` (`order_sn`) VALUES ('9619079e367011df')
 
复制代码



我想使用类似如下方式自己捕获异常进行处理
PHP复制代码
 
try{
   $this->db->insert('pay_order_form',$data);
  }catch(Exceptions  $s){
   //do something
  }
 
复制代码

但是使用try是没有办法捕获的
可否有其他方式来捕获异常并处理呢(用程序控制order_sn唯一性除外)

期待高手出现
 楼主| 发表于 2010-7-6 22:04:03 | 显示全部楼层
杂只有人看没人说呢
呼吁高人阿
发表于 2010-7-9 20:23:30 | 显示全部楼层
去底层,,
发表于 2010-7-9 20:23:59 | 显示全部楼层
找mysql_query($sql)
加 or die(throw new Exception(mysql_error()))

本版积分规则