2011-08-31 35 views
1

我使用zend框架,我看到代碼中使用save()函數,想知道是否有辦法獲取受影響的行之後,看到受影響的行數..php zend框架行受影響

我檢查了這個documentation但沒有多大幫助。有任何想法嗎?謝謝

回答

3

Zend_Db_Table_Row :: save()方法返回行的主鍵,如果您正在更新現有行,則返回當前主鍵;如果您要保存新行,則返回新主鍵。

save()方法適用於一個行實例,因此@Evernoob表示它只應用於一行。但是,保存時不一定會導致一行「受到影響」。例如,如果我沒有更改任何列值,並且保存()一行,則受影響的行爲零。在mysql shell中試試這樣的東西,你會發現它報告了零行受到影響。

UPDATE mytable SET column1 = column1 WHERE id = 1234; -- effectively a noop 

的Zend_Db_Statement有一個方法rowCount()(模仿PDOStatement對象rowCount()方法),但這種信息不通過一個Zend_Db_Table_Row接口浮出水面。

所以如果你需要這些信息,你必須使用Zend_Db_Adapter :: query()來更新數據來創建一個Zend_Db_Statement對象。在你執行()語句之後,你可以調用它的rowCount()。

+0

哦謝謝澄清..thats爲什麼當我試圖rowcount(),它沒有工作.. – Jay

1

save()函數應用於該對象的實例,該實例與一行關聯。因此,您可以安全地假定調用對象的save()只會影響其關聯的一行。

+0

好的謝謝,但即使如此,我可以知道它是否影響該記錄或不?因爲如果數據庫無法訪問的原因,那麼我想通過檢查它是否影響到記錄或不..因爲它不是然後我會中止它。 – Jay

+0

嘗試檢查什麼保存()函數返回後,你打電話... – Evernoob

+0

是啊我有點這樣做,通過使用count..is正確的方式 – Jay