1

$db->update() は影響を受けた行数を返します。

insert ... on duplicate key update ... のための Zend_DB メソッドはありません。そのため、query() メソッドを使用する必要があります。

$result = $db->query('INSERT INTO table(key, field) SELECT val1, val2 FROM table as t2 ON DUPLICATE KEY UPDATE field = VALUES(field)');

影響を受けたレコードまたは挿入されたレコードの量を調べるには: $result->rowCount()

ただし、このメソッドは、同じ値で更新されたすべてのレコードもカウントします。

実際に影響を受ける (変更された) レコードをすべて知る必要があります。

ありがとう!

4

1 に答える 1

0

残念ながら、「On Duplicate Key Update」により、ROW_COUNT() または mysql_rows_affected() が複数の更新を含む行を報告します。これは、更新された UNIQUE 行の数ではありません。

于 2010-04-06T20:09:52.273 に答える