这是我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实现数据库备份相关推荐

  1. php mysql备份代码_PHP备份/还原MySQL数据库的代码

    以下是代码: 一.备份数据库并下载到本地[db_backup.php] // 设置SQL文件保存文件名 $filename=date("Y-m-d_H-i-s")."-& ...

  2. 数据库备份到文件服务器,数据库文件备份到云服务器上

    数据库文件备份到云服务器上 内容精选 换一换 目前数据库服务器备份Agent安装包需要提交工单进行获取.当前仅支持x86计算类型的服务器,暂不支持鲲鹏计算类型的服务器.用户需要启用数据库备份前,需先在 ...

  3. SQL语句备份和还原数据库

    1,使用SQL最简单备份,还原数据库 1 /* 备份 */ 2 backup database Test to disk='D:/Test.bak' 3 /* 还原 */ 4 restore data ...

  4. 在ASP.NET中备份和还原数据库

    昨天看了<C#项目实录>中的进销存管理系统,和其他书里讲的案例一样,无非也就是数据库增删查改,但是这个进销存系统中有一个备份和还原数据库的功能,蛮有兴趣的,看了一下代码,原来如此,也就是通 ...

  5. 宝塔linux计划任务ftp,宝塔面板定时备份网站及数据库至FTP存储空间图文教程

    站长平时会用各种方法备份.包括手动备份.自动备份.定时备份等等不同方法.对于运维人员来说不是难事,对于站点较多的新手站长来说是有一点困难的,毕竟新手在技术方便还是弱了一些.为了能够有更多的时间运营网站 ...

  6. oracle增量备份如何恢复,【Oracle】增量备份和全库备份怎么恢复数据库

    在线QQ客服:1922638 专业的SQL Server.MySQL数据库同步软件 ? 为了演示增量备份的效果,我们在执行0级备份后对数据库进行了一些更改. ? 执行另一级1差异增量备份: < ...

  7. SQL Server 2008还原数据库时出现“备份集中的数据库备份与现有的数据库不同”的解决方法...

    引言 如今在做项目,由于每一个人是分模块的.所以大家的測试数据都不同步.导致好多时候会由于别人填的数据不同而调半天的错.所以我还是自己还原一个数据库.自己填自己的数据吧. 报错 之前还原过非常多个数据 ...

  8. 压缩SQL数据库日志-收缩SQL数据库日志-备份SQL数据库日志-删除SQL数据库日志

    [标题]压缩SQL数据库日志-收缩SQL数据库日志-备份SQL数据库日志-删除SQL数据库日志  [内容]         清除SQL数据库日志文件        有两种方式: 一.是压缩日志,二.是 ...

  9. oracle数据泵数据库导出导入及定时备份

    一.数据库备份 1.进入数据库 sqlplus system/密码 sqlplus username/password@servername as sysdba 2.创建目录d:\temp\dmp(d ...

  10. SQL Server 2008还原数据库时出现“备份集中的数据库备份与现有的数据库不同”的解决方法

    SQL Server 2008还原数据库时出现"备份集中的数据库备份与现有的数据库不同"的解决方法 参考文章: (1)SQL Server 2008还原数据库时出现"备份 ...

最新文章

  1. DataGridView的单元格控制只能输入数字
  2. 学习笔记Hadoop(一)—— Hadoop介绍(1)——认识大数据
  3. 1.1 objective-c中的内存管理
  4. 如何使用SAP APF里的过滤器
  5. C++ static静态成员函数
  6. python在材料模拟中的应用_材料模拟在计算机中使用的软件
  7. C++11多线程之 std::packaged_task
  8. nginx实现动态分离,解决css和js等图片加载问题
  9. 字符串中索引位置是什么意思_女孩子左手中指戴戒指什么意思 不同位置各有不同...
  10. Chapter 20 磁场对电流的作用
  11. Eclipse 反编译插件下载地址
  12. 日常英语口语900句
  13. 10、(十)外汇交易中专有名词整理
  14. Unity制作Roll-a-Ball游戏
  15. Shader的合并同类项
  16. 边缘设备、系统及计算杂谈(9)——dapr学习之二
  17. 程序员的中年危机好可怕
  18. cocos2dx《单机斗地主》源码解剖之八 电脑玩家出牌与跟牌(结束)
  19. 2020美团点评暑期实习一面
  20. 文件头、文件尾、特征码、常见文件的特征码

热门文章

  1. python迷宫小游戏代码_课内资源 - 基于python实现的迷宫游戏
  2. oracle增量和全量的区别,ORACLE全备份和0级增量备份的区别
  3. vscode不能跳转_vscode-goto-node-modules 一个快速定位 node 模块的 vscode 插件
  4. py导入包异常跳出_马克的Python学习笔记#模块和包
  5. appinventor贪吃蛇制作步骤_旋转RGB制作指导
  6. 剑指offer面试题[58]-二叉树的下一个结点
  7. 启动服务提示-bash: mongod: command not found
  8. 小白也能读懂的接口测试,接口测试并没有那么难
  9. 年薪50W测试大牛,分享测试开发基础知识
  10. ajax control toolkit vs2013,如何将Ajax Control Toolkit控件安装到Visual Studio 2005工具箱