如何使用 IGNORE 判断 PDO MySQL INSERT 是否成功
How to tell if PDO MySQL INSERT was successful with IGNORE
我知道我可以简单地 if ($PDO->execute()) { //true }
查看 PDO INSERT 是否成功,但是如果涉及 IGNORE 怎么办?
例如
INSERT IGNORE INTO MyTable SET DateTime = CAST(:dateTime AS DATETIME)
如果记录已经存在,因此被忽略,将 ->execute()
return true
或 false
?
我似乎找不到任何说明我的文档。
尝试:
$stmt->execute();
$stmt->rowCount();
这将告诉您上次查询影响了多少行。
我以为这会给我一个快速的答案,但事实并非如此,所以我自己测试了:
如果 IGNORE 语句没有记录被更改,那么 ->execute()
仍然 returns true
。只有出错才会returnfalse
我知道我可以简单地 if ($PDO->execute()) { //true }
查看 PDO INSERT 是否成功,但是如果涉及 IGNORE 怎么办?
例如
INSERT IGNORE INTO MyTable SET DateTime = CAST(:dateTime AS DATETIME)
如果记录已经存在,因此被忽略,将 ->execute()
return true
或 false
?
我似乎找不到任何说明我的文档。
尝试:
$stmt->execute();
$stmt->rowCount();
这将告诉您上次查询影响了多少行。
我以为这会给我一个快速的答案,但事实并非如此,所以我自己测试了:
如果 IGNORE 语句没有记录被更改,那么 ->execute()
仍然 returns true
。只有出错才会returnfalse