我正在使用以下格式的语句:
insert into $table (field, value) values (:name, :value)
on duplicate key
update value=:value2 into $table (field, value) values (:name, :value)
更新或插入一行到我的数据库(具有唯一约束),但我还有其他几个查询要进行,应该使用哪一个取决于数据是否已插入或更新。PDO 中有没有办法检测发生了什么?
使用 ON DUPLICATE KEY UPDATE,如果将行作为新行插入,则每行的受影响行值为 1,如果更新现有行,则为 2。
http://dev.mysql.com/doc/refman/5.1/en/insert-on-duplicate.html
据我记得,rowCount 将在插入时返回 1,在更新时返回 2。