2015-08-17 25 views
0

我想使用這個正確的postgreSQL查詢與Doctrine DBAL一起工作,但到目前爲止我沒有成功,查詢是:如何獲取在PostgreSQL中的更新...返回查詢在Doctrine DBAL中的值

UPDATE table SET field = field + 1 WHERE id = ? RETURNING field AS fieldName; 

該查詢工作正常,但試圖從RETURNING子句中恢復值我發現沒有辦法從DBAL中的查詢結果中獲取此值。

我試圖getLastInsertedId字段名值和調用的返回值本身,但沒有運氣。任何人都知道這樣做的方法?

感謝

+1

通常,使用數據庫抽象層支付的價格無法訪問底層數據庫的所有功能。它可能只有一些有限的方法來獲得單個生成的密鑰。 –

+1

是的,我意識到這一點,但我問了,因爲也許有一些我錯過了,並有一種方法來檢索該信息。 – Khriz

+1

推測你使用'executeUpdate()'。嘗試使用'executeQuery()',就好像它是一個SELECT。 –

回答

0

好了,打了一點後,用@丹尼爾-V的幫助%C3%a9rit%C3%A9我找到了辦法做到這一點。與你做的更新只有一個查詢

$statement = $conn->executeQuery($sql, $params); 
$statement->fetchAll(); 

這種方式,並得到更新的最後一個值:

要在Postgres的恢復必須執行這樣的查詢檢索更新後的數據。

相關問題