2011-03-26 97 views
4

我有mysql轉儲文件。我怎樣才能使用PHP將該文件導入到mysql中?使用php導入mysql轉儲

+2

爲什麼不直接使用命令行? mysql -u USER -p DBNAME CamelBlues 2011-03-26 22:38:08

+0

只需將其分解成許多以**; **結尾的SQL語句,但請記住;不應在報價單 – AbiusX 2011-03-26 22:42:33

回答

3

取決於轉儲文件的大小,真的。一個小的可以添加一個sql命令。可以用腳本導入較大的一個。

快速搜索將顯示許多預製腳本,將轉儲分解爲更小的塊,以避免服務器超載。我過去使用過這個:http://www.ozerov.de/bigdump.php

+1

文件 - 1 mb。我知道bigdump!但我需要我的php腳本導入文件到MySQL! – user515503 2011-03-26 22:38:09

2

您轉儲可能是一個文件,只是包含大量的SQL查詢。

導入此類轉儲的最簡單方法是使用mysql command-line client(特別是如果該文件是大!)

mysql --user=USERNAME --password=PASSWORD --host=HOST DB_NAME < /path/to/your/file.sql 


如果您可以連接到您的服務器的一些命令行訪問(通常使用ssh),這就是要走的路。

否則,我想你可以用你想用PHP system()

2

我執行這樣的命令,你可以輕鬆的使用file()功能,讀取一個文件到由線陣列線。

你可以嘗試這樣的事情:

mysql_connect(BD_HOST, DB_USER, BD_PASS) or die("Error connecting to MySQL server: ".mysql_error()); 
mysql_select_db(DB_NAME); 

$all_lines = file("mysql_dump.sql", FILE_SKIP_EMPTY_LINES | FILE_IGNORE_NEW_LINES); 

foreach($all_lines as $query) { 
    if(substr($query, 0, 2) == "--") { 
     continue; 
    } 

    mysql_query($query) or die("Error executing query <br/>&nbsp;&nbsp;"$query\"<br/>".mysql_error()); 
}