1

我正在使用以下格式的语句:

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

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

4

2 回答 2

3

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

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

于 2013-08-04T10:27:44.217 回答
1

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

于 2013-08-04T10:16:41.657 回答