php++数据库备份,php实现数据库备份
这是我2010-12-08 21:38 写的了,本来是写在百度空间的,想想还是放在这里比较好。
花了不少时间,网站终于搞定了,通过这次实践操作学会了不少知识,拿来供大家分享一下。
这次网站我主要负责写数据备份和音乐在线播放模块,数据备份代码贴出来如下:
class DataBackUp
{
var $HOST;
var $USERNAME;
var $PASSWORD;
var $DATABASE;
var $con;
var $result;
var $tabledump;
//连接数据库
function DataBackUp($host,$username,$password,$database)
{
$this->HOST= $host;
$this->USERNAME=$username;
$this->PASSWORD=$password;
$this->DATABASE=$database;
$this->con = mysql_connect("$this->HOST","$this->USERNAME","$this->PASSWORD")or die(mysql_error());
mysql_select_db("$this->DATABASE",$this->con)or die(mysql_error());
mysql_query("SET NAMES 'utf8'");
}
//获得数据库的表名
function get_table_name($database)
{
$result=mysql_list_tables($database);
$table_name = array();
for ($i = 0; $i < @mysql_num_rows($result); $i++)
{
$table_name[$i]=mysql_tablename($result, $i);
}
return $table_name;
}
//获得数据库表的数量
function get_table_nums($database)
{
$result=mysql_list_tables($database);
return @mysql_num_rows($result);
}
//获得相应表的内容
function get_table_fields($table_name)
{
$createtable=mysql_query("SHOW CREATE TABLE $table_name");
$create=mysql_fetch_row($createtable);
$tabledump ="DROP TABLE IF EXISTS $table_name;/n";
$tabledump .= $create[1].";/n/n";
return $tabledump;
}
//获得数据库里的具体内容,第一次
function get_insert($table_insert_name)
{
$rows = mysql_query("SELECT * FROM $table_insert_name") or die(mysql_error());
if ( !$rows )
{
die(mysql_error());
}
$numfields = mysql_num_fields($rows);
$numrows = mysql_num_rows($rows); //echo $numrows;
while ($row = mysql_fetch_row($rows))
{
$comma = "";
$this->tabledump .= "INSERT INTO $table_insert_name VALUES(";
for($i = 0; $i < $numfields; $i++)
{
$this->tabledump .= $comma."'".mysql_escape_string($row[$i])."'";
$comma = ",";
}
$this->tabledump .= ");/n";
}
return $this->tabledump;
}
//这里我要强调一下,第一次写的时候将 $table_insert=$this->get_insert($table_name[$i]);
//写成了 $table_insert . =$this->get_insert($table_name[$i]);多加了一个点,结果导致只能备份一部分数据
function get_string($database_name,$file_path_name)
{
$table_name=$this->get_table_name($database_name);
$table_num = $this->get_table_nums($database_name);
$table_insert="";
$table_fields="";
for($i=0;$i < $table_num;$i++)
{
$table_insert=$this->get_insert($table_name[$i]);
$table_fields.=$this->get_table_fields($table_name[$i]);
}
$content = $table_fields.$table_insert;
$write_status=$this->write_file($file_path_name,$content);
msg($write_status);
}
//将获得的数据库内容写到文件里
function write_file($file_path,$file_contents)
{
if(@!$fp=fopen($file_path,'w'))
{
$status="This File Could Not Open Or Read.";
}else{
flock($fp,3);
fwrite($fp,$file_contents);
fclose($fp);
$status="
备份数据库成功!
.";
}
return $status;
}
//还原数据库
function recover_data($data)
{
$handle = fopen($data, "r");
$contents = fread($handle, filesize($data));
fclose($handle);
$contents = explode(';', $contents );
foreach ($contents as $sql)
{
if (!empty($sql)) {
mysql_query($sql);
}
}
echo "
数据库还原成功
";
echo "";
}
} ?>
php++数据库备份,php实现数据库备份相关推荐
- php mysql备份代码_PHP备份/还原MySQL数据库的代码
以下是代码: 一.备份数据库并下载到本地[db_backup.php] // 设置SQL文件保存文件名 $filename=date("Y-m-d_H-i-s")."-& ...
- 数据库备份到文件服务器,数据库文件备份到云服务器上
数据库文件备份到云服务器上 内容精选 换一换 目前数据库服务器备份Agent安装包需要提交工单进行获取.当前仅支持x86计算类型的服务器,暂不支持鲲鹏计算类型的服务器.用户需要启用数据库备份前,需先在 ...
- SQL语句备份和还原数据库
1,使用SQL最简单备份,还原数据库 1 /* 备份 */ 2 backup database Test to disk='D:/Test.bak' 3 /* 还原 */ 4 restore data ...
- 在ASP.NET中备份和还原数据库
昨天看了<C#项目实录>中的进销存管理系统,和其他书里讲的案例一样,无非也就是数据库增删查改,但是这个进销存系统中有一个备份和还原数据库的功能,蛮有兴趣的,看了一下代码,原来如此,也就是通 ...
- 宝塔linux计划任务ftp,宝塔面板定时备份网站及数据库至FTP存储空间图文教程
站长平时会用各种方法备份.包括手动备份.自动备份.定时备份等等不同方法.对于运维人员来说不是难事,对于站点较多的新手站长来说是有一点困难的,毕竟新手在技术方便还是弱了一些.为了能够有更多的时间运营网站 ...
- oracle增量备份如何恢复,【Oracle】增量备份和全库备份怎么恢复数据库
在线QQ客服:1922638 专业的SQL Server.MySQL数据库同步软件 ? 为了演示增量备份的效果,我们在执行0级备份后对数据库进行了一些更改. ? 执行另一级1差异增量备份: < ...
- SQL Server 2008还原数据库时出现“备份集中的数据库备份与现有的数据库不同”的解决方法...
引言 如今在做项目,由于每一个人是分模块的.所以大家的測试数据都不同步.导致好多时候会由于别人填的数据不同而调半天的错.所以我还是自己还原一个数据库.自己填自己的数据吧. 报错 之前还原过非常多个数据 ...
- 压缩SQL数据库日志-收缩SQL数据库日志-备份SQL数据库日志-删除SQL数据库日志
[标题]压缩SQL数据库日志-收缩SQL数据库日志-备份SQL数据库日志-删除SQL数据库日志 [内容] 清除SQL数据库日志文件 有两种方式: 一.是压缩日志,二.是 ...
- oracle数据泵数据库导出导入及定时备份
一.数据库备份 1.进入数据库 sqlplus system/密码 sqlplus username/password@servername as sysdba 2.创建目录d:\temp\dmp(d ...
- SQL Server 2008还原数据库时出现“备份集中的数据库备份与现有的数据库不同”的解决方法
SQL Server 2008还原数据库时出现"备份集中的数据库备份与现有的数据库不同"的解决方法 参考文章: (1)SQL Server 2008还原数据库时出现"备份 ...
最新文章
- DataGridView的单元格控制只能输入数字
- 学习笔记Hadoop(一)—— Hadoop介绍(1)——认识大数据
- 1.1 objective-c中的内存管理
- 如何使用SAP APF里的过滤器
- C++ static静态成员函数
- python在材料模拟中的应用_材料模拟在计算机中使用的软件
- C++11多线程之 std::packaged_task
- nginx实现动态分离,解决css和js等图片加载问题
- 字符串中索引位置是什么意思_女孩子左手中指戴戒指什么意思 不同位置各有不同...
- Chapter 20 磁场对电流的作用
- Eclipse 反编译插件下载地址
- 日常英语口语900句
- 10、(十)外汇交易中专有名词整理
- Unity制作Roll-a-Ball游戏
- Shader的合并同类项
- 边缘设备、系统及计算杂谈(9)——dapr学习之二
- 程序员的中年危机好可怕
- cocos2dx《单机斗地主》源码解剖之八 电脑玩家出牌与跟牌(结束)
- 2020美团点评暑期实习一面
- 文件头、文件尾、特征码、常见文件的特征码
热门文章
- python迷宫小游戏代码_课内资源 - 基于python实现的迷宫游戏
- oracle增量和全量的区别,ORACLE全备份和0级增量备份的区别
- vscode不能跳转_vscode-goto-node-modules 一个快速定位 node 模块的 vscode 插件
- py导入包异常跳出_马克的Python学习笔记#模块和包
- appinventor贪吃蛇制作步骤_旋转RGB制作指导
- 剑指offer面试题[58]-二叉树的下一个结点
- 启动服务提示-bash: mongod: command not found
- 小白也能读懂的接口测试,接口测试并没有那么难
- 年薪50W测试大牛,分享测试开发基础知识
- ajax control toolkit vs2013,如何将Ajax Control Toolkit控件安装到Visual Studio 2005工具箱