ホームページ  >  記事  >  バックエンド開発  >  对有索引的表插入时报错23000

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

WBOY
WBOYオリジナル
2016-06-06 20:14:531295ブラウズ

表有一个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 までご連絡ください。