[英]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.