使用PHP备份MySQL数据的多种方法

以下两种方法仅供研究之用。

第一个方法:

复制代码代码如下所示:
< PHP
为主机=localhost;
用户名=根;
密码;
在美元=在;

mysql_connect(美元美元美元的主机,用户,密码);
mysql_select_db($ dbname);
为MySQL = SET NAMES UTF8;;
mysql_query($ MySQL);
美元mysql_query(Q1 =显示表);
而(T = mysql_fetch_array美元($ Q1)){
$表= $ { { 0 };
$ Q2 = mysql_query(显示表的创建` $表` );
SQL mysql_fetch_array美元(美元Q2);
为MySQL,SQL表} {'创建美元。;

$ Q3 = mysql_query(SELECT * FROM ` $表` );
而($data = mysql_fetch_assoc($ Q3)){
钥匙= array_keys美元(美元数据);
$键= array_map('addslashes,$键);
$ =联接(或,$,$);
美元=$键。;
瓦尔斯= array_values美元(美元数据);
瓦尔斯美元= array_map('addslashes,瓦尔斯美元);
瓦尔斯美元=加入(,,$ VALS);
瓦尔斯美元=VAL美元。;
为MySQL。=插入表`美元`($键)值($ VAL);;
}
$;
}
文件名= $(美元dbname.date 'ymj)。;
$ FP = fopen($文件名,'w');
作用是:将内容(FP美元美元,MySQL);
Fclose($ FP);
成功的数据备份,生成备份文件;
>


第二方法:

复制代码代码如下所示:
< PHP
为主机=localhost;
$root;
密码;
在美元=在;
backup_tables(美元的主机,用户名,密码在美元,美元);

备份DB或仅仅是一个表
功能backup_tables(为主机,用户通过美元,美元,美元,美元的名字,表=*)
{

链接的mysql_connect美元(美元美元美元的主机,用户通过);
mysql_select_db($name,$链接);

获取所有表
如果($表=*)
{
$ =数组();
结果= mysql_query美元('show表);
而($行= mysql_fetch_row($结果))
{
$表= $行{ 0 };
}
}
其他的
{
表= is_array美元($表)表:爆炸美元(',',为表);
}
$ =;
循环
foreach($表达表)
{
结果= mysql_query美元('select *$表);
num_fields = mysql_num_fields美元($结果);
美元的回报。=放弃表。$表。';';
$ row2 = mysql_fetch_row(mysql_query('show创建表。$表));
$美元。row2 { 1 }。;

为($我= 0;美元美元美元我<< num_fields;i++)
{
而($行= mysql_fetch_row($结果))
{
美元的回报。= 'insert。$表。'values(';';
(J = 0;对美元美元美元,<< num_fields;j++)
{
$行{ $ j} = addslashes($行{ $ J });
行{ } =美元美元,ereg_replace(
如果(isset($行{ $ J })){ $返回。=。$行{ $ J }。;}否则{ $返回。= ';};}
如果(J <($ num_fields-1)){ $返回。= '、';}
}
$; ;
}
}
$;
}

保存文件
为处理= fopen('db-backup '时间((MD5(崩溃)。'。(' ',$表。。SQL,大片+))));
fwrite(合处理,美元的回报);
Fclose($处理);
}
>