mysql pdo:如何检测语句是否插入或更新了预先存在的行

时间:2013-08-04 10:15:05

标签: mysql pdo

我正在使用以下格式的声明:

insert into $table (field, value) values (:name, :value)
on duplicate key
update value=:value2 into $table (field, value) values (:name, :value)

更新或在我的数据库中插入一行(具有唯一约束),但我还有其他几个查询要做,哪一个应该使用取决于数据是否已插入或更新。 PDO中有没有办法检测发生了哪种情况?

2 个答案:

答案 0 :(得分:3)

  

如果ON DUPLICATE KEY UPDATE,则每行的受影响行值为1   该行将作为新行插入,如果现有行已更新,则为2。

http://dev.mysql.com/doc/refman/5.1/en/insert-on-duplicate.html

答案 1 :(得分:1)

据我记忆,rowCount将在插入时返回1,在更新时返回2。