我是 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 block 中添加了这些行。但页面上仍然显示警告:PDOStatement::execute(): SQLSTATE[23000]: Integrity Constraint Violation
。
我找到了error_reporting(E_ERROR),但我不知道该把这条线放在哪里。因为我只想禁用该功能的警告。
顺便说一句,我这样做是因为。我不想检查该行是否存在然后尝试插入。我希望 mysql 来完成这项工作。
如果您需要更多信息,请告诉我。
提前致谢。
最佳答案
在 PHP 中,在语句之前输入 @
可以抑制它产生的任何警告
@$stm->execute();
但是,如果您了解发出警告的确切原因,那就更好了。您可能做错了什么。
编辑:
您可以通过执行 INSERT IGNORE
而不是 INSERT
在 MySQL 端抑制此警告,请参阅 http://dev.mysql.com/doc/refman/5.6/en/insert.html
关于php - 隐藏所选函数的 php mysql 约束违规警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24597026/