2012-05-07 84 views
-2

要寫入MySQL數據庫3000行。PHP INSERT in MySQL 3000 rows

INSERT INTO test (id, test) VALUES ("1", "test"); 
INSERT INTO test (id, test) VALUES ("2", "test"); 
INSERT INTO test (id, test) VALUES ("3", "test"); 

... 

INSERT INTO test (id, test) VALUES ("3000", "test"); 

如何共享該數據庫沒有掛斷部分的要求嗎?

+4

我實在無法理解你的問題... – Marco

+0

指定細節你的問題 –

回答

1

難道你有3000行插入但不想全部寫出來嗎?如果是這樣使用:

$insert = ''; 
$count = 1; 
while ($count <= 3000) { 
    $insert .= "('$count', 'test'), "; 
    $count++; 
} 

$insert = substr($insert, 0, -2); 

INSERT INTO test (`id`, `test`) VALUES $insert; 
1

我不知道這是否是你問什麼,但多個插入合併成一個查詢,你可以這樣做:

INSERT INTO test (id, test) VALUES 
    ("1", "test"), 
    ("2", "test"), 
    ("3", "test"); 

這應該大大加快你的腳本。

+0

小心不要越過極限,對於一些分貝限值是每多插入查詢1000行,找到針對MySQL – ray

2

您可以將多個INSERT語句分組到一個語句中,如下所示。

INSERT INTO test (id, test) VALUES ("1", "test"), ("2", "test"), ("3", "test"); 

這應該會減少發送到服務器的查詢量。此外,如果它掛起數據庫,則可以使用關鍵字DELAYEDMySQL docu)。這緩存插入,直到數據庫能夠插入它們。更多的直接查詢可以在插入之前進行,從而延遲它們。這裏需要注意的是,您最終只能將表中的數據放入表格中,而不是立即進行。

INSERT DELAYED INTO test (id, test) VALUES ("1", "test"), ("2", "test"), ("3", "test");