2009-09-03 72 views
0

我感覺一個更簡單的方法來執行代碼。我怎樣才能使刪除/插入更短?Postgres:插入和刪除

// to delete the old tags before inserting new tags                                      
     $result = pg_query_params ($dbconn, 
       'DELETE FROM tags 
       WHERE question_id = $1', 
       array ($question_id) 
       ); 

     $result = pg_prepare ($dbconn, "query_777", 
       'INSERT INTO tags 
       (tag, question_id) 
       VALUES ($1, $2)' 
       ); 
+1

你的第二個查詢缺少的參數。 – 2009-09-03 21:03:23

回答

1

你可以做的事情不多。從技術上講,你可以用存儲過程來做,然後只是:

select change_question_tags(...); 

但它並沒有太大的改變。

+0

太誇張了嗎? http://www.eioba.com/a70583/a_basic_introduction_to_postgres_stored_procedures – hhh 2009-09-03 21:34:16

+0

編號存儲過程很簡單。但它並沒有改變代碼的複雜性 - 它只是改變了複雜性的地方。當然 - 這也有好的一面,但是你希望使它更短 - 使用存儲過程會使你的PHP代碼更短,但不包括總長od代碼,包括數據庫存儲過程。 – 2009-09-04 08:37:36

0

你可以使用一些ORM/DB抽象,然後做的東西一樣

$tags = new TagsTable(); 
$tags->delete($tags->find('question_id = ?', $1)); 
$tags->insert(array('tag' => $1, 'question_id' => $2)); 

Zend_Db_Table