可能重複:
insert multiple rows via a php array into mysql插入數據表記錄到MySQL數據庫使用PHP
道歉,如果我錯了,我的問題是我有50
行 我想一個PHP數據表將這些50
行數據插入到MYSQL數據庫中。是否有任何查詢一次插入多行。我使用笨MVC框架
總之,我想Inadvance
可能重複:
insert multiple rows via a php array into mysql插入數據表記錄到MySQL數據庫使用PHP
道歉,如果我錯了,我的問題是我有50
行 我想一個PHP數據表將這些50
行數據插入到MYSQL數據庫中。是否有任何查詢一次插入多行。我使用笨MVC框架
總之,我想Inadvance
您可能會擁有一個包含所有50個數據的數組。
$data = array(
array(
'id' => '1' ,
'data' => 'data-1'
),
array(
'id' => '2' ,
'data' => 'data-2'
)
...
...
...
array(
'id' => '50' ,
'data' => 'data-50'
)
);
在您的codeigniter模型類中,您可能會有一個insertBulk函數,例如如下所示。那就是你將上面的數組傳遞給函數。
public function insertBulk($array) {
$this->db->insert_batch('datatable', $array);
}
// which produces: INSERT INTO datatable (id, data) VALUES ('1', 'data-1'), ('2', 'data-2'), ...('50', 'data-50');
我沒有測試過了大陣,但我認爲你可能需要在陣列去太大,檢查出的內存使用情況。
謝謝Jasonw它工作的很好.... – 2012-02-21 06:22:18
@RajneelJoshi謝謝你的驗證。 – Jasonw 2012-02-21 07:16:05
Mysql的轉儲是你想要的插入PHP數據表到數據庫
感謝。
下面的鏈接將helpo你出去瞭解你需要做什麼..
,並通過PHP它可以是這樣的
<?php
$db = mysql_connect ('localhost', 'username', 'password');
mysql_select_db('database', $db);
$FP = fopen ('backup.sql', 'r');
$READ = fread ($FP, filesize ('backup.sql'));
$READ = explode (";\n", $READ);
foreach ($READ AS $RED)
{
mysql_query ($RED);
}
echo 'Done';
?>
與更換backup.sql您文件名。 我用它來執行一個phpBB mySQL轉儲到數據庫中。
謝謝,OM永恆 – 2012-02-20 10:55:14
我的寶庫@RajneelJoshi – 2012-02-20 10:59:35
您可以從PHP批量插入到MySQL,你還是要小心批量大小雖然。這是他們在我上面評論中鏈接到的主題中描述的內容。 Per the manual,格式爲:
INSERT INTO tbl_name(A,B,C)VALUES(1,2,3),(4,5,6),(7,8,9);
什麼是更好的是如果兩個數據庫都在同一物理機上,如果是那樣的話,你可以做一個跨數據庫INSERT INTO SELECT statement這將消滅任何大的INSERT語句或一個批次的辦法SQL轉儲,因爲數據永遠不會離開MySQL。 (這也應該跨機器工作,但如果是這種情況,最好使用前面提到的PHP或SQL轉儲)。
爲什麼要同時插入多行? – JJJ 2012-02-20 10:34:13
因爲,我不想循環50次 – 2012-02-20 10:35:08
創建一個轉儲文件,並在新的數據庫中執行它 – 2012-02-20 10:35:11