2010-01-23 41 views
1

如何使用php在mysql中添加多條記錄。使用數組是這個問題的唯一解決方案。因爲我嘗試使用數組,但會在數據庫中添加的是這樣的記錄: 陣列如何使用php在mysql中添加多條記錄

+1

你能提供更多的細節和你的代碼源嗎? – Zied 2010-01-23 13:56:13

回答

4

您可以使用多值插入語句(INSERT ... VALUES(RECORD1),(RECORD2)等) (見http://dev.mysql.com/doc/refman/5.1/en/insert.html

這是如何從記錄

陣列構建這樣一個說法
$values = array(); 
foreach($records_array as $record) 
    $values[] = sprintf("('%s' , '%s')", addslashes($record['name']), addslashes($record['email'])); 
$sql = "INSERT INTO users(name, email) VALUES " . implode(",", $values); 
mysql_query($sql); 
+0

一個很好的帖子,但注意:使用mysql_real_escape_string而不是addslashes !!!!!!! http://php.net/manual/en/function.mysql-real-escape-string.php – Dan 2010-01-23 18:24:56

+0

%s是什麼意思? – user225269 2010-01-23 22:51:39

+0

它表示字符串替換params'addslashes($ record ['name'])''提供 – Pentium10 2010-01-24 10:59:02

3

你需要去通過陣列中的每個成員:

foreach($array as $record) 
{ ... } 

和執行INSERT查詢每個成員或 - 更好的表現 - 按照user187291's answer中的說明在一個陳述中插入所有記錄。

+0

將它全部作爲一個查詢執行會更好,而不必爲每次迭代都擊中數據庫。沒有? – 2010-01-23 14:34:51

+0

是的。 @ stereofrog的答案概述瞭如何。我不知道VALUES可以一次做多行! – 2010-01-23 14:44:18

相關問題