我知道我可以简单地if ($PDO->execute()) { //true }
一下,看看PDO插入是否成功,但如果涉及IGNORE 怎么办?
例如。
INSERT IGNORE INTO MyTable SET DateTime = CAST(:dateTime AS DATETIME)
如果记录已经存在,因此被忽略,->execute()
会返回true
还是false
?
我似乎找不到任何告诉我的文档。
尝试:
$stmt->execute();
$stmt->rowCount();
这将告诉您上一个查询影响了多少行。
我以为这会让我得到一个快速的答案,但它没有,所以我自己测试了它:
如果 IGNORE 语句未更改任何记录,则->execute()
仍返回 true
。如果出现错误,它只会返回false
。