【发布时间】:2015-04-02 23:11:17
【问题描述】:
我知道我可以简单地if ($PDO->execute()) { //true } 来查看 PDO INSERT 是否成功,但如果涉及 IGNORE 怎么办?
例如。
INSERT IGNORE INTO MyTable SET DateTime = CAST(:dateTime AS DATETIME)
如果记录已经存在,因此被忽略,->execute() 会返回true 还是false?
我似乎找不到任何可以告诉我的文档。
【问题讨论】:
-
INSERT IGNORE将始终成功,如果 PHP 和 MySQL 之间的连接没有在中途中断或发生其他干扰 MySQL 正常内部工作的事情。由于您只提到了一半的问题(我们不知道您为什么使用IGNORE),并且您需要知道是否有这样的记录-为什么不使用常规插入并捕获异常以防万一记录存在吗?这是有问题的批量插入吗? -
@N.B.谢谢。我自己才发现这一点。另外,回答你的问题:情况是相反的。我只想知道记录是否被更改。