程序备份数据库

<?php
header("Content-type:text/html;charset=utf-8");
$database = "thinksns_3_1";
$link = mysql_connect('localhost','root','123456') or die('连接失败');
mysql_select_db($database) or die('连接数据库失败');
//选择编码
mysql_query("set names utf8");
//1.获取所有的表
$rs = mysql_query("SHOW TABLES FROM $database");
$tableArray = array();
while ($row = mysql_fetch_row($rs)) {
$tableArray[] = $row[0];
}
mysql_free_result($rs);

//2.配置文件名
$to_file_name ="./".time().".sql";
$info ="/*".date('Y-m-d')."导出数据*/\r\n";
file_put_contents($to_file_name,$info,FILE_APPEND);

//3.循环表
foreach($tableArray as $val){
$sql = "show create table ".$val;
$res = mysql_query($sql,$link);
$row = mysql_fetch_array($res);
$info = "/*-- Table structure for `".$val."`*/\r\n";
$info .= "DROP TABLE IF EXISTS `".$val."`;\r\n";
$sqlStr = $info.$row[1].";\r\n\r\n";
//追加到文件
file_put_contents($to_file_name,$sqlStr,FILE_APPEND);
//释放资源
mysql_free_result($res);

$sql = "select * from ".$val;
$res = mysql_query($sql,$link);
//如果表中没有数据,则继续下一张表
if(mysql_num_rows($res)<1) continue;
//
$info = "/*-- Records for `".$val."`*/\r\n";
file_put_contents($to_file_name,$info,FILE_APPEND);
//读取数据
while($row = mysql_fetch_row($res)){
$sqlStr = "INSERT INTO `".$val."` VALUES (";
foreach($row as $zd){
$sqlStr .= "'".$zd."', ";
}
//去掉最后一个逗号和空格
$sqlStr = substr($sqlStr,0,strlen($sqlStr)-2);
$sqlStr .= ");\r\n";
file_put_contents($to_file_name,$sqlStr,FILE_APPEND);
}
//释放资源
mysql_free_result($res);
file_put_contents($to_file_name,"\r\n",FILE_APPEND);
}

header("Content-type: application/octet-stream");
header("Accept-Ranges: bytes");
header("Accept-Length: ".filesize($to_file_name));
header("Content-Disposition: attachment; filename=" . $to_file_name);
readfile($to_file_name);
echo "数据全部到处";

时间: 2024-12-26 04:10:36

程序备份数据库的相关文章

winform程序,备份数据库+并压缩+并删除以前的备份

说明:为了定时备份服务器上的数据库并压缩到指定目录,方便下载到本地而写本程序.配合windows的任务计划,可以达到定时备份数据库的目的. 程序需引用SQLDMO.DLL,如电脑上已安装sqlserver,可在C:\Program Files\Microsoft SQL Server\80\Tools\Binn\找到 string ServerName = System.Configuration.ConfigurationSettings.AppSettings["ServerName&quo

PHP备份数据库的原理和方法 57

1.PHP备份数据库的原理查找所有表--查找所有字段(需要列出所有字段名, 字段类型等相关信 息)---查找所有数据(读取数据出来注意 特殊符号的转换 addslashes ())--生成SQL(把数据格式化 生成对应的SQL)通过相关函数输出SQL相关信息,并格式化后生成文件,保存!2.PHP中mysql相关函数mysql_list_tables() 表查询函数,类似mysql_query() 函数 mysql_fetch_field() 字段信息函数,返回句柄 Name 字段的名称 Tabl

在linux和windows下自动备份数据库

摘要: 详细介绍在windows和linux下自动备份数据库的过程,希望可以让新手立即上手吧! 本文档内容共分为2大部分:linux和windows Linux和windows都分为:准备工作和操作阶段. Linux的详细步骤为:1.准备文件. 2.连接linux 3.实际操作也就是写命令 windows的详细步骤为:1.准备文件. 2.编辑任务和计划程序. 所用软件:notepad++,ssh 一.linux 1.准备工作(可以在windows下执行本操作) 创建三个文件 1.1文件名:exp

windows server 定期备份数据库脚本

将以下文件保存为.bat脚本,在计划任务中添加定时任务运行此脚本即可.脚本中的备份目录,数据库目录和压缩文件目录请自行修改. @echo off rem 当前路径切换到备份数据库目录 cd D:\wamp\www\databases rem 按照时间新建备份目录:格式为年\月\日 md %date:~0,4%\%date:~5,2%\%date:~8,2% rem 设置临时变量:备份目录 set backuppath=D:\wamp\www\databases\%date:~0,4%\%date

Java程序操作数据库SQLserver详解

数据库基本操作:增删改查(CRUD) crud介绍(增.删.改.查操作) CRUD是指在做计算处理时的增加(Create).查询(Retrieve)(重新得到数据).更新(Update)和删除(Delete)几个单记事的首字母简写.主要被用在描述软件系统中数据库或者持久层的基本操作功能. Create new records Rctricvc cxisting rccords Update existing records Delete existing records. 要对数据表进行增.删.

局域网备份数据库和文件

一.前情提要 把服务器架设在VirtualBox虚拟机上,对应服务器的数据库文档也备份在虚拟机上.现由于某种意外,虚拟机挂了,需要我们去修复虚拟机或者将虚拟机里面的文件拷贝出来重新架在新的虚拟机上,如果能成功当然是好的,可是很不幸的是以目前掌握的技术修复不了数据也拷贝不出来,这下怎么办呢???只能哭了~~~~ 二.经验教训 为了避免再出现数据拷不出来造成不必要的麻烦,我们就设定让虚拟机里的重要文件定时备份到实体机上,实体机自然是比较稳定的,而且就算系统挂了也懂得怎么把数据拷回来. 三.数据库备份

JavaWeb项目通过调用cmd实现备份数据库的功能

1.别急着上车,先测试一下能否成功调用cmd,可以尝试通过cmd命令打开计算器,代码如下: 2.能成功打开计算器后,证明调用cmd的方法是没错的,现在把cmd命令字符串改成我们备份数据库的 命令: 这里的命令是对mysql数据库的备份,其他的数据库则改成相应的命令即可.下图是对该命令的简单解释: 3.看着好像完工了,一运行,发现报错了,报错如下: Cannot run program "mysqldump": CreateProcess error=2,?????? 直接复制命令到cm

mysql load data infile的使用 和 SELECT into outfile备份数据库数据

LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name.txt' [REPLACE | IGNORE] INTO TABLE tbl_name [FIELDS [TERMINATED BY 'string'] [[OPTIONALLY] ENCLOSED BY 'char'] [ESCAPED BY 'char' ] ] [LINES [STARTING BY 'string'] [TERMINATED BY 'string

常用的shell(备份数据库、备份网站、切割访问日志)

备份网站程序 #!/bin/bash /bin/tar czf /mnt/backup_website/web_$(date +%Y%m%d_%H%M%S).gz.tar /mnt/wwwroot/web cd /mnt/backup_website find . -mtime +1 -name "*20[1-9][3-9]*" | xargs rm -f exit 0 备份数据库 #!/bin/bash /bin/tar czf /mnt/backup_website/newjiag