当前位置:首页 » 编程语言 » php备份类

php备份类

发布时间: 2023-01-24 06:12:20

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
names
utf8",$link);
$dbbck=new
backupData($link);//实例化它,只要一个链接标识就行了
//备份数据时,如想备份一个数据库中的所有表,你可这样写:
$dbbck->backupTables("cms","./",array('*'));
­
//备份数据时,如想备份一个数据库中的仅一个表时,你可这样写:
$dbbck->backupTables("cms","./",array('user'));
­
//备份数据时,如想备份一个数据库中的多个表时,你可这样写:
­
$dbbck->backupTables("cms","./",array('user','acl','informatoin'));
//注解:$dbbck->backupTables("参1","参2",array());中,
参1为:数据库名,
参2为:要存放备份数据的位置(即目录地址)
第三个为:你要保存那些表
ok...
­
以下为代码:
复制代码
代码如下:
<?php
/*
*
*简单的一个备份数据类
*author
FC
*
*/
class
backupData{
private
$mysql_link;//链接标识
private
$dbName;//数据库名
private
$dataDir;
//数据所要存放的目录
private
$tableNames;//表名
public
function
__construct($mysql_link){
­
$this->mysql_link
=
$mysql_link;
}
­
public
function
backupTables($dbName,$dataDir,$tableNames){//开始备份
­
$this->dbName
=
$dbName;
$this->dataDir
=
$dataDir;
$this->tableNames
=
$tableNames;
$tables=$this->delarray($this->tableNames);
$sqls='';
foreach($tables
as
$tablename){
if($tablename==''){//表不存在时
continue;
}
//************************以下是形成SQL的前半部分**************
//如果存在表,就先删除
$sqls
.=
"DROP
TABLE
IF
EXISTS
$tablename;\n";
//读取表结构
$rs
=
mysql_query("SHOW
CREATE
TABLE
$tablename",$this->mysql_link);
$row=mysql_fetch_row($rs);
//获得表结构组成SQL
$sqls.=$row['1'].";\n\n";
unset($rs);
unset($row);
//************************以下是形成SQL的后半部分**************
//查寻出表中的所有数据
$rs=mysql_query("select
*
from
$tablename",$this->mysql_link);
//表的字段个数
$field=mysql_num_fields($rs);
//形成此种SQL语句:"INSERT
INTO
`groups`
VALUES('1499e0ca25988d','主任','','0');"
while($rows=mysql_fetch_row($rs)){
$comma='';//逗号
$sqls.="INSERT
INTO
`$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);
}
­
private
function
delarray($array){//处理传入进来的数组
foreach($array
as
$tables){
if($tables=='*'){//所有的表(获得表名时不能按常规方式来组成一个数组)
$newtables=mysql_list_tables($this->dbName,$this->mysql_link);
$tableList
=
array();
for
($i
=
0;
$i
<
mysql_numrows($newtables);
$i++){
array_push($tableList,mysql_tablename($newtables,
$i));
}
$tableList=$tableList;
}else{
$tableList=$array;
break;
}
}
return
$tableList;
}
}

㈡ php 网站只要备份数据库就可以吗

备份数据库的数据就可以了。
备份的方法:
1、本地备份-适用于独立主机或VPS:使用本机程序对网站文件及数据库进行备份。
2、异地备份-适用于虚拟主机/空间:使用FTP程序将文件下载回本机备份,数据库使用本机的数据库管理程序进行远程备份。
备份的类型:
1、完整备份-所整个网站的文件都备份一次。优点:可以把整个网站都完整备份一次。缺点:费时费资源。
2、差异备份-只备份有改变的文件。优点:每次只把有改变过的文件备份下来。相同的文件就不会再备份一次了,省时省力。

㈢ 请问如何用php写一个类,备份所有的数据库呢

主要是个mysql mp操作,将数据库的数据完整导入到txt或者其他文件中就可以的,和php的类相关很小啊,就是函数和mysql操作写对了就好

㈣ 如何用php进行数据备份

1、如果服务器允许mysqlmp 并且没有禁止PHP的shell_exec()这个函数的话
直接在PHP里面执行mysqlmp就可以了。

2、通过mysql_query('show tables')的返回值遍历每个表,循环对每个表使用查询语句
select * into outfile '路径/文件名' from 表名
缺点是这样得到的是纯数据,恢复数据的时候你需要额外再写脚本

3、同样通过show tables返回表名,遍历每个表,通过select 语句查询,然后逐条结果处理,比如手工添加drop table 和create table 以及insert into等等,然后再写入文件。这样得到的备份数据是比较接近mysqlmp的结果的,各种工具都可以用来恢复数据。缺点是如果数据库太大的话,效率不好说

㈤ 如何实现PHP自动备份数据库

1.打开数据库备份页面
//php代码,导出数据库
public function exportSql() {
$dbName = C('DB_NAME'); //读取配置文件中的数据库用户名、密码、数据库名
$dbUser = C('DB_USER');
$dbPwd = C('DB_PWD');
$fileName = date("Y-m-d")."_".$dbName.".sql";
$mpFileName = "./sql_backup/".$fileName;
exec("D:/xampp/mysql/bin/mysqlmp -u$dbUser -p$dbPwd $dbName > $mpFileName");
}

2.php exec函数,执行外部程序命令
exec(“D:/xampp/mysql/bin/mysqlmp -u$dbUser -p$dbPwd $dbName > $mpFileName”);
此处执行mysqlmp命令,导出数据库到$mpFileName中,“D:/xampp/mysql/bin/”为mysqlmp所在位置,“-u$dbUser -p$dbPwd”数据库的用户名和密码(中间不要加空格),$dbName为要导出数据库的名字

㈥ 如何用PHP来实现MySQL备份

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

<?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("mysqlmp-u$cfg_dbuser-p$cfg_dbpwd--default-character-set=utf8$cfg_dbname>".$tmpFile);
$file=fopen($tmpFile,"r");//打开文件
echofread($file,filesize($tmpFile));
fclose($file);
exit;
?>

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

使用mysqlmp函数

mysqlmp -u username -p dbname table1 table2 ... > BackupName.sql

  • dbname参数表示数据库的名称

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

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

  • 备份数据库的主要过程:

  • 切换到对应的数据库;

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

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

  • 试运行生成的sql文件。

㈧ php备份恢复MYSQL数据库

1、把数据库sql文件查找 CHARACTER
替换成 CHARACTER SET utf8 或 CHARACTER = utf8

2、到phpmyadmin 创建一个新的数据库的时候应该选 整理 latin1_swedish_ci

3、到phpmyadmin 进入新建的数据库,导入数据库文件

4、用UltraEdit转换所有ANSI格式的php源码文件为UTF-8格式:File --> Conversions --> ASCII to UTF-8

5、在php源码文件中必须加入:
在<head>后加入
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

6、在连接数据DB的文件中找到类似一下代码
$host="localhost"; $DBname="aa"; //数据库名字$user= "root"; //用户名$passwd = ""; //密码$link = mysql_connect($host,$user,$passwd) or die ("Fail");
$db = mysql_select_db($DBname, $link) or die ("Fail"); //连接
// 要在真正query DB取出资料前,必须加入下面3行mysql_query才可以:
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER_SET_CLIENT=utf8");
mysql_query("SET CHARACTER_SET_RESULTS=utf8");

7、在php源码中, 如有应用htmlentities和htmlspecialchars时需要注意:
要似如下格式:
$chars = htmlentities($chars,ENT_QUOTES,"UTF-8");
$chars = htmlspecialchars($chars,ENT_QUOTES,"UTF-8");
如有应用addslashes()或mysql_real_escape_string()记得用以下:
$chars = stripslashes($chars);

另外如果需要的话还可设置:

1、php.ini 设定php中的语系为 (记得restart)
default_charset = "utf-8"

2、my.ini 设定MySQL中的语系为 (记得restart)
[mysqld]
init_connect='SET NAMES utf8'
default-character-set=utf8
[client]
default-character-set = utf8

本人刚接触PHP+MySQL,才疏学浅,希望能给有需要的得到帮助。
请大家指点,谢谢!

热点内容
编程猫角度 发布:2025-07-20 18:40:19 浏览:508
hibernatesession的缓存 发布:2025-07-20 18:38:46 浏览:13
安卓模拟器下载电脑版哪个好 发布:2025-07-20 18:37:59 浏览:659
三星手机存储卡用不了 发布:2025-07-20 18:37:48 浏览:136
java数组返回 发布:2025-07-20 18:34:20 浏览:260
sqlserver不存在 发布:2025-07-20 18:28:05 浏览:838
原神电脑配置怎么玩不卡 发布:2025-07-20 18:07:06 浏览:955
反编译获取原代码 发布:2025-07-20 17:49:43 浏览:493
plc编译怎么找 发布:2025-07-20 17:48:56 浏览:162
无效的宏名称将编译哑宏 发布:2025-07-20 17:48:16 浏览:155