2010-03-10 15 views
1

$ db-> update()返回受影響的行數。Zend DB:如何使用INSERT ON DUPLICATE KEY查找受影響的行的實際數量?

沒有爲插入沒有Zend_Db的方法......在重複鍵更新......,所以應該使用query()方法:

$結果= $ DB->查詢(「INSERT INTO表(鍵,字段)SELECT val1,val2 FROM table as t2 ON DUPLICATE KEY UPDATE field = VALUES(field)');

要了解受影響或插入的記錄量:) $ result-> rowCount時(

但是這種方法也計算所有用相同的值更新的記錄。

我需要知道所有實際受影響(更改)的記錄。

謝謝!

回答

0

不幸的是,「重複鍵更新」會導致ROW_COUNT()或mysql_rows_affected()報告具有多個更新的行,但這不是更新的UNIQUE行的計數。

+0

我使用的兩種策略是:A)遵循'on-dup-key'查詢,對照表使用定義唯一記錄的標準進行選擇。 B)比較'on-dup-key'查詢前/後的記錄數。 – 2011-06-24 16:51:48

相關問題