[英]Import mysql dump using php
我有mysql轉儲文件。 如何使用php將此文件導入mysql?
取決於轉儲文件有多大,真的。 可以使用sql命令添加一個小的。 可以使用腳本導入較大的一個。
快速搜索將顯示許多預先制作的腳本,這些腳本將轉儲分解為較小的塊,以便不會使服務器過載。 我過去使用過這個: http : //www.ozerov.de/bigdump.php
我想使用PHP,你可以輕松使用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/> "$query\"<br/>".mysql_error());
}
您轉儲可能是一個只包含大量SQL查詢的文件。
導入這種轉儲的最簡單方法是使用mysql
命令行客戶端 (特別是如果文件很大!) :
mysql --user=USERNAME --password=PASSWORD --host=HOST DB_NAME < /path/to/your/file.sql
如果您可以使用某些命令行訪問(通常使用ssh)連接到您的服務器,那就是要走的路。
否則,我想你可以用system()
執行這樣的命令
你可以使用multi_query
來導入中等文件大小的數據庫轉儲文件 。
$command = file_get_contents($dumpfile);
$conn->multi_query($command);
while (mysqli_next_result($conn)); // Flush out the results.
注意: 確切的文件大小限制取決於您的服務器配置,例如。 max_allowed_packet
等
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.