我是PHP新手,我正在使用http://www.php-mvc.net/轻量级php MVC框架开发一个项目。 我有两个表之间的多对多映射,即
collection : id
profile : id
collection_profile : collection_id <--> profile_id
我创建了一个函数,我在collection_profile表中插入了映射行。
现在问题。我创建了collection_id
和profile_id
的复合键,因此它不会让我输入复制组合,这就是我想要的。
我在try,catch块中添加了这些行。但它仍然在页面上显示警告:PDOStatement::execute(): SQLSTATE[23000]: Integrity constraint violation
。
我找到error_reporting(E_ERROR),但我无法弄清楚该行的位置。因为我只想禁用该功能的警告。
顺便说一下,我这样做是因为。我不想检查该行是否存在,然后尝试插入。我希望mysql能够完成这项工作。如果您需要更多信息,请与我们联系。
提前致谢。
答案 0 :(得分:2)
在PHP中,在语句前键入@
可以抑制它产生的任何警告
@$stm->execute();
但是如果你理解为什么发出警告就会好得多。你可能做错了什么。
编辑:
您可以通过执行INSERT IGNORE
而不是INSERT
在MySQL端禁止此警告,请参阅http://dev.mysql.com/doc/refman/5.6/en/insert.html