2012-05-16 237 views
0

使用INSERT,REPLACE或ON DUPLICATE KEY UPDATE來更新數據庫中的一行會更好嗎?更新mysql數據庫中的一行?

我目前使用:

mysql_query("insert into pages (pages_id, pagename, pagedesc, pagekey, pagecont) values('$pages_id', $pagename', '$pagedesc', '$pagekey', '$pagecont')"); 

建立在DB新行。

pages_id是mysql數據庫中的auto_increment字段。我不確定哪個是更新數據庫中現有行的最佳方法?

+0

爲什麼不直接使用'update table set field = value where id = key'? –

回答

3

如果要更新現有的行(和你是100%肯定它存在的話),肯定去更新。

如果你是 「更新」,這可能不存在,去 「INSERT ... ON DUPLICATE KEY UPDATE」 一行。

0

使用UPDATE並指定pages_id?

這裏有UPDATE教程:UPDATE tutorial

小例子:

mysql_query("UPDATE pages SET pagename = $pagename WHERE pages_id = $page_id"); 

在一個完全不同的音符,雖然,停止使用MYSQL *功能,並開始與PDO工作,這是一個很大安全!

+0

感謝您的幫助@Bono!我可以用一個SET設置所有的變量,像這樣:mysql_query(「更新頁面設置pagename = $ pagename,pagedesc = $ pagedesc,pagekey = $ pagekey,pagecont = $ pagecont,WHERE pages_id = $ pages_id」); 什麼是PDO? – GT22

3

具有諷刺意味的是,您使用UPDATE來更新SQL中的一行。

UPDATE pages SET ... WHERE pages_id = $pages_id; 
0

INSERT總是比UPDATE更重。 INSERT必須爲新插入的項目分配內存,而UPDATE在表格上執行搜索並且沒有尋找新內存。當你需要在很短的時間內插入很多記錄時,這種差異變得非常重要。當數據庫不是非常忙時,最好輸入INSERT,必要時輸入UPDATE