2013-05-30 65 views
1

我有一個包含大量(500+)代碼的列表,我想將它插入到數據庫中。插入大量的記錄到數據庫中

例如:用戶給予textarea的代碼和代碼由新行(\n)分隔。在PHP中是$_POST['codes']。當然,我可以使用explode()函數,並在循環中插入所有代碼,但我認爲這是不是一個好主意,500個重複。

那麼,我該如何做到最優?

+0

它的確定爆炸字段 –

+4

你試過了嗎? 500個插入物實際上什麼都沒有。 – JJJ

+0

對於PHP和MySQL而言,500-1000次重複都不算什麼。所以只是爆炸並插入... – enenen

回答

2

根據您的數據的大小,你可以把所有到一個單一的查詢,如果你擔心單獨插入數目:

mysql_query("INSERT INTO mytable(`People`, `Places`, `Ideas`, `things`) 
      VALUES ('40', '15', '0', '0'), 
      ('0', '5', '10', '0'), 
      ('10', '0', '11', '12')"); 

(例如來自:https://stackoverflow.com/a/10286687/486780

+1

不推薦'mysql_ *'函數,它們已被棄用(請參閱[紅盒子](http://php.net/mysql_query))。建議使用[準備好的語句](http://bobby-tables.com/php.html)。 –

+0

當然,你準備好的陳述是100%正確的。但作爲概念的證明,這將是一種做法。 – ZorleQ

+2

這對於這個問題至關重要:如果您運行預處理語句,那麼SQL解釋器必須僅解析一次查詢,並且可以高速重複運行相同的查詢。這與你的語法完全不同。 –

相關問題