隐藏选定函数的php mysql约束冲突警告
我是PHP新手,正在使用light PHP MVC框架开发一个项目。 我有两个表之间的多对多映射,即隐藏选定函数的php mysql约束冲突警告,php,mysql,warnings,Php,Mysql,Warnings,我是PHP新手,正在使用light PHP MVC框架开发一个项目。 我有两个表之间的多对多映射,即 collection : id profile : id collection_profile : collection_id <--> profile_id 集合:id 个人资料:id 集合\u配置文件:集合\u id配置文件\u id 我创建了一个函数,在该函数中,我在collection_profile表中插入映射行。 现在问题来了。我已经创建了collection\u i
collection : id
profile : id
collection_profile : collection_id <--> profile_id
集合:id
个人资料:id
集合\u配置文件:集合\u id配置文件\u id
我创建了一个函数,在该函数中,我在collection_profile表中插入映射行。
现在问题来了。我已经创建了collection\u id
和profile\u id
的组合键,所以它不会让我输入重复组合,这就是我想要的
我在try,catch块中添加了这些行。但它仍然在页面上显示警告:PDOStatement::execute():SQLSTATE[23000]:完整性约束冲突
我找到了,但我不知道该把这条线放在哪里。因为我只想禁用该功能的警告
顺便说一句,我这样做是因为。我不想检查行是否存在,然后尝试插入。我想让mysql来做这项工作
如果您需要更多信息,请告诉我
提前感谢。在PHP中,在语句之前键入
@
可以抑制它产生的任何警告
@$stm->execute();
但如果你能理解为什么会发出警告,那就更好了。你可能做错了什么
编辑:
您可以在MySQL端通过执行
INSERT IGNORE
而不是INSERT
来抑制此警告,请参见我将尝试。我这样做是因为。我不想检查组合是否不存在,然后尝试插入。我想让mysql来做这项工作。在这种情况下,由于您使用的是mysql,您可以执行INSERT IGNORE来抑制mysql侧的警告,我会这样做。添加@是一个更好的解决方案。再次感谢。我不需要包装代码,然后重试catch,对吗?@AmitChotaliya对,不会抛出异常。如果行已经存在,MySQL将什么也不做