2012-04-11 33 views
6

các biến thể của câu hỏi này đã được hỏi trên SO và trên nhiều blog nhưng không có câu trả lời thẳng nào. Tôi hy vọng có một. tôi cập nhật PostgreSQL 9.0 (từ CodeIgniter, khuôn khổ PHP):Bắt số hàng bị ảnh hưởng bởi một UPDATE trong PostgreSQL

$sql_order = "UPDATE meters SET billed=true"; 
$query = $this->db->query($sql_order); 

Tôi chỉ đơn giản là cần một số lượng hàng mà bị ảnh hưởng bởi bản cập nhật, nhưng có vẻ là không có cách nào để làm điều này với PostgreSQL. Truy vấn hiện đang trả về một boolean - true. Hướng dẫn sử dụng và nói chuyện trên web tham khảo cú pháp RETURNING, đến GET DIAGNOSTICS và đến loại trả về mặc định từ UPDATE. Tôi đã không thể có được bất kỳ điều này để làm việc. Có cách đơn giản để nhận các hàng ảnh hưởng đến số lượng mà không phải nhúng thao tác đơn giản này vào một quy trình hoặc giao dịch.

+0

Bạn đang làm việc bằng ngôn ngữ nào? PHP? Đây có phải là một phần của một tập lệnh bên trong một hàm PostgreSQL như PL/php: http://www.commandprompt.com/community/plphp/ hoặc một trình thông dịch PHP bên ngoài kết nối với PostgreSQL không? – kgrittn

Trả lời

8

Trong Java Tôi đã sử dụng như sau:

Statement stmt = connection.createStatement(); 
int rowsAffected = stmt.executeUpdate("UPDATE ..."); 

Trong PHP tôi tin pg_affected_rows là đường đi. Và trong trường hợp cụ thể của bạn $this->db->affected_rows()

Các vấn đề liên quan