簡體   English   中英

使用php導入mysql轉儲

[英]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/>&nbsp;&nbsp;"$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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM