php数据库备份表 php 备份数据库

求thinkphp 数据库的备份、还原的脚本

一、备份数据库并下载到本地【db_backup.php】

创新互联建站专注为客户提供全方位的互联网综合服务,包含不限于成都网站设计、成都网站制作、阿尔山网络推广、微信小程序开发、阿尔山网络营销、阿尔山企业策划、阿尔山品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联建站为所有大学生创业者提供阿尔山建站搭建服务,24小时服务热线:18982081108,官方网址:www.cdcxhl.com

代码代码如下:

?php

// 设置SQL文件保存文件名

$filename=date("Y-m-d_H-i-s")."-".$cfg_dbname.".sql";

// 所保存的文件名

header("Content-disposition:filename=".$filename);

header("Content-type:application/octetstream");

header("Pragma:no-cache");

header("Expires:0");

// 获取当前页面文件路径,SQL文件就导出到此文件夹内

$tmpFile = (dirname(__FILE__))."\\".$filename;

// 用MySQLDump命令导出数据库

exec("mysqldump -u$cfg_dbuser -p$cfg_dbpwd --default-character-set=utf8 $cfg_dbname ".$tmpFile);

$file = fopen($tmpFile, "r"); // 打开文件

echo fread($file,filesize($tmpFile));

fclose($file);

exit;

?

二、还原数据库【db_restore.php】

代码代码如下:

form id="form1" name="form1" method="post" action=""

【数据库SQL文件】:input id="sqlFile" name="sqlFile" type="file" /

input id="submit" name="submit" type="submit" value="还原" /

/form

?php

// 我的数据库信息都存放到config.php文件中,所以加载此文件,如果你的不是存放到该文件中,注释此行即可;

require_once((dirname(__FILE__).'/../../include/config.php'));

if ( isset ( $_POST['sqlFile'] ) )

{

$file_name = $_POST['sqlFile']; //要导入的SQL文件名

$dbhost = $cfg_dbhost; //数据库主机名

$dbuser = $cfg_dbuser; //数据库用户名

$dbpass = $cfg_dbpwd; //数据库密码

$dbname = $cfg_dbname; //数据库名

set_time_limit(0); //设置超时时间为0,表示一直执行。当php在safe mode模式下无效,此时可能会导致导入超时,此时需要分段导入

$fp = @fopen($file_name, "r") or die("不能打开SQL文件 $file_name");//打开文件

mysql_connect($dbhost, $dbuser, $dbpass) or die("不能连接数据库 $dbhost");//连接数据库

mysql_select_db($dbname) or die ("不能打开数据库 $dbname");//打开数据库

echo "p正在清空数据库,请稍等....br";

$result = mysql_query("SHOW tables");

while ($currow=mysql_fetch_array($result))

{

mysql_query("drop TABLE IF EXISTS $currow[0]");

echo "清空数据表【".$currow[0]."】成功!br";

}

echo "br恭喜你清理MYSQL成功br";

echo "正在执行导入数据库操作br";

// 导入数据库的MySQL命令

exec("mysql -u$cfg_dbuser -p$cfg_dbpwd $cfg_dbname ".$file_name);

echo "br导入完成!";

mysql_close();

}

?

如何使用PHP自动备份数据库

使用mysqldump函数

mysqldump -u username -p dbname table1 table2 ...   BackupName.sql

dbname参数表示数据库的名称

table1和table2参数表示需要备份的表的名称,为空则整个数据库备份;

BackupName.sql参数表设计备份文件的名称,文件名前面可以加上一个绝对路径。通常将数据库被分成一个后缀名为sql的文件。

备份数据库的主要过程:

切换到对应的数据库;

使用show create table  tableName,获得表结构,写到文件中;

然后查询所有的表数据,循环生成相对应sql语句,写到文件中;

试运行生成的sql文件。

php实现mysql数据库分表分段备份

分卷导出思路:统计sql语句变量的长度,按1个字符当成1

字节比较,如果大于设定分卷大小,则写入一个sql文件(我也不知道这样统计是否稳当,这也是借鉴其他的人的)。

分卷导入思路:按行读取sql文件,将每一行当作完整的sql语句存到数组再循环执行插入数据库就可以了,但是在创建表语句分了多行,这个需要单独处理(就这个花了我好长时间的);

?php

//宋正河

转载请注明出处

set_time_limit(0);

header('content-type:text/html;charset=utf-8');

mysql_connect('localhost','root','root');

mysql_select_db('test');

$table_array=get_tables('test');

mysql_query('set

names

utf8');

$filesize=1024*1024*4;

$start=$_GET['start']?$_GET['start']:0;

$part=$_GET['part']?$_GET['part']:'1';

$table_index=$_GET['table_index']?$_GET['table_index']:'0';

$table=$table_array[$table_index];

$num=200000000;//这个数要足够大,可以是总记录数

$backupdata='';

if($start=='0'){

$query="SHOW

CREATE

TABLE

`{$table}`";

$result

=

mysql_query($query);

$row

=

mysql_fetch_row($result);

$backupdata

.=

"DROP

TABLE

IF

EXISTS

`{$table}`;\n"

.

$row[1]

.

";\n\n";

}

$limit=($start=='0')?'':"

limit

$start,$num

";

$query="select

*

from

`{$table}`

$limit

";

$result=mysql_query($query);

$numfields

=

mysql_num_fields($result);

//统计字段数

while($row=mysql_fetch_row($result)){

$comma

=

'';

//存储逗号

$backupdata_tmp

=

"INSERT

INTO

`{$table}`

VALUES

(";

for($i=0;

$i$numfields;

$i++){

$backupdata_tmp

.=

$comma

.

"'"

.

mysql_escape_string($row[$i])

.

"'";

$comma

=

',';

}

$backupdata_tmp

.=

");\n";

if(strlen($backupdata)+strlen($backupdata_tmp)

$filesize){

//写入文件并跳转

$file='data/'.$table.'-'.$part.'.sql';

file_put_contents($file,$backupdata);

echo

$file.'

备份完成,程序继续进行!';

$part++;

//分段

//表名

//起点

//跳转

sleep(3);

echo

"scriptlocation.href='?start={$start}table_index={$table_index}part={$part}';/script";

exit;

}

$backupdata.=$backupdata_tmp;

$start++;

}

if($backupdata){

$file='data/'.$table.'-'.$part.'.sql';

file_put_contents($file,$backupdata);

}

echo

$table.'备份完成!br

/';

sleep(2);

$table_index++;

if($table_array[$table_index]){

echo

"scriptlocation.href='?table_index={$table_index}';/script";

exit;

}else{

echo

'恭喜你,数据库备份完毕!';

}

function

get_tables($db){

$tq

=

mysql_list_tables($db);

while($tr

=

mysql_fetch_row($tq)){

$arrtb[]

=

$tr[0];

}

return

$arrtb;

}

?

以上所述就是本文的全部内容了,希望大家能够喜欢。

php中数据库怎样备份数据库文件

$msgs[]="服务器备份目录为backup";

$msgs[]="对于较大的数据表,强烈建议使用分卷备份";

$msgs[]="只有选择备份到服务器,才能使用分卷备份功能";

show_msg($msgs);


分享标题:php数据库备份表 php 备份数据库
本文链接:http://pwwzsj.com/article/hjsipc.html