簡體   English   中英

如何使用PHP將MySQL表備份到轉儲中?

[英]How to back up MySQL table into a dump with PHP?

有沒有辦法使用php 而不是CSV或XML來轉儲整個數據庫,因為我需要純SQL格式的數據。

我需要的轉儲示例:

CREATE TABLE 'table_name' etc..;
INSERT INTO 'table_name' (field, field2) VALUES ('1','2');
INSERT INTO 'table_name' (field, field2) VALUES ('1','2');

我沒有使用exec()system()。 而且無需手動創建INSERT語句。

while($row = mysql_results) {
 $sql_dump = 'INSERT INTO ...';
}

謝謝! :)

您可以運行SHOW CREATE TABLE查詢。 這是從mysql客戶端中完成的:

+-------+----------------------------------------------------------------+
| Table | Create Table                                                   |
+-------+----------------------------------------------------------------+
| test2 | CREATE TABLE `test2` (
  `AAA` varchar(1) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+-------+----------------------------------------------------------------+

當然,可以通過任何常規的select語句檢索數據,並且如果您使用腳本語言來編寫數據,則可以根據需要存儲數據。

如果您只是在mysql客戶端中並且可以訪問文件系統,則可以運行Select ... Into Outfile語句:

SELECT * INTO OUTFILE 'backup.tab'
ENCLOSED BY '"'
FROM <TableName>;

上面將創建一個制表符分隔的文件。

要將數據加載回運行中:

LOAD DATA INFILE 'backup.tab'
INTO TABLE <TableName>
ENCLOSED BY '"';

試圖從MySQL內部重新創建INSERT語句可能最終會導致轉義特殊字符等問題。 使用CSV或制表符分隔的數據文件被視為導出和導入數據的完美標准。

如果您可以遠程訪問數據庫(MySQL端口不是ssh),則可以嘗試在服務器之間設置同步。 您可以使用其他具有打開或必需訪問權限的服務器。 在本地主機上安裝就足夠了。
最新版本的PHPMyAdmin提供了用於設置同步的功能(將其安裝在本地計算機上)。 SQLYog還支持同步功能。

試試這個

$command="mysqldump  --host=localhost --user=USER --password=***** DATABASENAME.table > db.sql";
system($command);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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