>  기사  >  백엔드 개발  >  对有索引的表插入时报错23000

对有索引的表插入时报错23000

WBOY
WBOY원래의
2016-06-06 20:14:531248검색

表有一个unique索引(两个字段)
对这个表进行add操作时报错,23000,也就是当数据存在时会报错,而不像手册中说的返回flase。
网上有人用异常,不考虑这个。。。。
还有人说在模型里加入验证,可是验证好像同时只能针对一个字段。。。

如果不用异常的话,有什么办法可以让插入失败时返回false?

回复内容:

表有一个unique索引(两个字段)
对这个表进行add操作时报错,23000,也就是当数据存在时会报错,而不像手册中说的返回flase。
网上有人用异常,不考虑这个。。。。
还有人说在模型里加入验证,可是验证好像同时只能针对一个字段。。。

如果不用异常的话,有什么办法可以让插入失败时返回false?

首先声明,插入失败返回false貌似做不到,但是还是有办法解决的。
1、validate是可以针对两个字段的,你可以先validate时对该字段使用unique,再使用$data->create(),如果返回true才进行add操作
2、可以直接先判断一下数据库中有没有当前unique字段,如果有的话仍然添加应该用save或者add($data,true)

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.