网站首页 > 文章中心 > 其它

php备份数据表

作者:小编 更新时间:2023-08-23 13:15:19 浏览量:346人看过

php mysql如何备份数据

我一般用二种方法:

①SQL文件数据备份;

点中你想要备份的数据库,按右键使用转存SQL文件,就会出现你要备份的提示框,保存即可;

直接找到mysql安装目录,找到data文件夹全部拷呗到你想备份的地方即可,还原就拷回来即可.适合大数据量的备份方法!

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

使用mysqldump函数

dbname参数表示数据库的名称

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

备份数据库的主要过程:

切换到对应的数据库;

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

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

试运行生成的sql文件.

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

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

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

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

php

//宋正河

转载请注明出处

set_time_limit(0);

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

mysql_select_db('test');

$table_array=get_tables('test');

mysql_query('set

names

$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];

$backupdata='';

if($start=='0'){

$query="SHOW

CREATE

TABLE

+{$table}+";

$result

=

mysql_query($query);

$row

mysql_fetch_row($result);

$backupdata

.=

"DROP

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

VALUES

(";

for($i=0;

$i$numfields;

$i++){

"'"

mysql_escape_string($row[$i])

"'";

',';

");\n";

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

$filesize){

//写入文件并跳转

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

file_put_contents($file,$backupdata);

echo

$file.'

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

$part++;

//分段

//表名

//起点

//跳转

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

exit;

$backupdata.=$backupdata_tmp;

$start++;

if($backupdata){

$table.'备份完成!br

/';

$table_index++;

if($table_array[$table_index]){

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

}else{

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

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代码,导出数据库

public function exportSql() {

$dbName = C('DB_NAME'); //读取配置文件中的数据库用户名、密码、数据库名

$dbUser = C('DB_USER');

$dbPwd = C('DB_PWD');

$fileName = date("Y-m-d")."_".$dbName.".sql";

$dumpFileName = "./sql_backup/".$fileName;

exec("D:/xampp/mysql/bin/mysqldump -u$dbUser -p$dbPwd $dbName $dumpFileName");

此处执行mysqldump命令,导出数据库到$dumpFileName中,"D:/xampp/mysql/bin/"为mysqldump所在位置,"-u$dbUser -p$dbPwd"数据库的用户名和密码(中间不要加空格),$dbName为要导出数据库的名字

php MYSQL 数据备份类

功能上有:

-

require_once("backdata.class.php");

$link

@mysql_connect("localhost","数据库名","密码")

or

die

('Could

not

connect

to

server.');

mysql_query("use

cms",$link);

mysql_query("set

$dbbck=new

backupData($link);//实例化它,只要一个链接标识就行了

//备份数据时,如想备份一个数据库中的所有表,你可这样写:

$dbbck-backupTables("cms","./",array('*'));

//备份数据时,如想备份一个数据库中的仅一个表时,你可这样写:

$dbbck-backupTables("cms","./",array('user'));

//备份数据时,如想备份一个数据库中的多个表时,你可这样写:

$dbbck-backupTables("cms","./",array('user','acl','informatoin'));

参1为:数据库名,

第三个为:你要保存那些表

ok...

以下为代码:

复制代码

代码如下:

/*

*简单的一个备份数据类

*author

FC

*/

class

backupData{

private

$mysql_link;//链接标识

$dbName;//数据库名

$dataDir;

//数据所要存放的目录

$tableNames;//表名

public

__construct($mysql_link){

$this-mysql_link

$mysql_link;

backupTables($dbName,$dataDir,$tableNames){//开始备份

$this-dbName

$dbName;

$this-dataDir

$this-tableNames

$tableNames;

$tables=$this-delarray($this-tableNames);

$sqls='';

foreach($tables

as

$tablename){

if($tablename==''){//表不存在时

continue;

//************************以下是形成SQL的前半部分**************

//如果存在表,就先删除

$sqls

$tablename;\n";

//读取表结构

$rs

mysql_query("SHOW

$tablename",$this-mysql_link);

$row=mysql_fetch_row($rs);

//获得表结构组成SQL

$sqls.=$row['1'].";\n\n";

unset($rs);

unset($row);

//************************以下是形成SQL的后半部分**************

//查寻出表中的所有数据

$rs=mysql_query("select

//表的字段个数

$field=mysql_num_fields($rs);

//形成此种SQL语句:"INSERT

+groups+

while($rows=mysql_fetch_row($rs)){

$comma='';//逗号

$sqls.="INSERT

+$tablename+

VALUES(";

for($i=0;$i$field;$i++){

$sqls.=$comma."'".$rows[$i]."'";

$comma=',';

$sqls.=");\n\n\n";

$backfilepath=$this-dataDir.date("Ymdhis",time()).'.sql';

//写入文件

$filehandle

fopen($backfilepath,

"w");

fwrite($filehandle,

$sqls);

fclose($filehandle);

delarray($array){//处理传入进来的数组

foreach($array

$tables){

if($tables=='*'){//所有的表(获得表名时不能按常规方式来组成一个数组)

$newtables=mysql_list_tables($this-dbName,$this-mysql_link);

$tableList

array();

for

($i

0;

$i

mysql_numrows($newtables);

array_push($tableList,mysql_tablename($newtables,

$i));

$tableList=$tableList;

$tableList=$array;

break;

$tableList;

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章