php 备份数据库
<?php header( "Content-type:text/html;charset=utf-8" ); //配置信息 $cfg_dbhost = 'localhost' ; $cfg_dbname = 'demos' ; $cfg_dbuser = 'root' ; $cfg_dbpwd = 'root' ; $cfg_db_language = 'utf8' ; $to_file_name = "ftdm.sql" ; // END 配置 //链接数据库 $link = mysql_connect( $cfg_dbhost , $cfg_dbuser , $cfg_dbpwd ); mysql_select_db( $cfg_dbname ); //选择编码 mysql_query( "set names " . $cfg_db_language ); //数据库中有哪些表 $tables = mysql_list_tables( $cfg_dbname ); //将这些表记录到一个数组 $tabList = array (); while ( $row = mysql_fetch_row( $tables )){ $tabList [] = $row [0]; } echo "运行中,请耐心等待...<br/>" ; $info = "-- ----------------------------\r\n" ; $info .= "-- 日期:" . date ( "Y-m-d H:i:s" ,time()). "\r\n" ; $info .= "-- 仅用于测试和学习,本程序不适合处理超大量数据\r\n" ; $info .= "-- ----------------------------\r\n\r\n" ; file_put_contents ( $to_file_name , $info ,FILE_APPEND); //将每个表的表结构导出到文件 foreach ( $tabList as $val ){ $sql = "show create table " . $val ; $res = mysql_query( $sql , $link ); $row = mysql_fetch_array( $res ); $info = "-- ----------------------------\r\n" ; $info .= "-- Table structure for `" . $val . "`\r\n" ; $info .= "-- ----------------------------\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 ); } //将每个表的数据导出到文件 foreach ( $tabList as $val ){ $sql = "select * from " . $val ; $res = mysql_query( $sql , $link ); //如果表中没有数据,则继续下一张表 if (mysql_num_rows( $res )<1) continue ; // $info = "-- ----------------------------\r\n" ; $info .= "-- Records for `" . $val . "`\r\n" ; $info .= "-- ----------------------------\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); } echo "OK!" ; ?>
|
php 备份数据库的更多相关文章
- php备份数据库
php备份数据库原理和方法 原理 查找所有表 查找所有字段,列出所有字段名 字段类型等信息 查找所有数据 读取后注意特殊符号转换addslashes() 生成sql 把数据库格式化生成对应sql 相关 ...
- oracle 备份数据库对象(存储过程PROCEDURE,FUNCTION,VIEW,TRIGGER...)
开发过程中,需要不停的备份数据库对象, 特别是存储过程, 每次手动备份不免很低能啊 历经几次修改终于, 完美了,O(∩_∩)O哈哈~ (当然,你也可以再改简便一点~~~) select db ...
- Oracle如何实现创建数据库、备份数据库及数据导出导入的一条龙操作
Oracle中对数据对象和数据的管理,无疑都是使用PL/SQL Developer来进行管理,该工具也提供给我们很多方便.快捷的操作,使得我们不再为Oracle本身丑陋.难用的UI而抱怨.由于我们一般 ...
- Sql Server自动备份数据库,定期删除备份
//实现:每天自动备份数据库,定期删除备份 //步骤:[开始]--[所有程序]--[Microsoft SQL Server 2005]--[SQL Server Management Studio] ...
- 知方可补不足~SqlServer自动备份数据库及清理备份文件
回到目录 对于SQLSERVER这个关系型数据库来说,为了保持数据的安全,备份是必须的,当你的一个误操作导致数据丢失,这可能是灾难性的,是不被允许发生的,这时,我们必须要做好定期的备份工作,如我们可以 ...
- mysql load data infile的使用 和 SELECT into outfile备份数据库数据
LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name.txt' [REPLACE | IGNORE] INTO TABLE t ...
- 出现“System.Data.SqlClient.SqlError: 尚未备份数据库的日志尾部”错误的解决方案
Sql Server2008数据库在还原时出现如下错误信息:System.Data.SqlClient.SqlError: 尚未备份数据库<数据库名称>的日志尾部.如果该日志包含您不希望丢 ...
- SQL Server 定时自动备份数据库
在SQL Server中出于数据安全的考虑,所以需要定期的备份数据库,这篇文章介绍使用SQL Server 数据库代理中的作业定时自动备份数据库. 1.启动SQL Server代理服务,如下图: 绿色 ...
- SQL server2012怎么备份数据库(设置自动备份)
1.打开SQL server配置管理器,设置sql server服务里的SQL server代理服务为自动并启动 2.启动Master Data Services Configuration Mana ...
- 在linux和windows下自动备份数据库
摘要: 详细介绍在windows和linux下自动备份数据库的过程,希望可以让新手立即上手吧! 本文档内容共分为2大部分:linux和windows Linux和windows都分为:准备工作和操作阶 ...
随机推荐
- html css jquery 回到顶部按钮
今天做了个回到顶部的功能,在这里记录一下,有需要可以拿去试试! CSS部分,很简单就一个class /*回到顶部*/ .back-top { position: fixed; right: 15px; ...
- linux命令之crontab详解
crontab命令: crontab -l : 显示定时任务列表 crontab -e: 编辑定时任务 crontab -r : 删除所有定时任务 基本格式 : * * * * * command ...
- USACO 3.3 Shopping Offers
Shopping OffersIOI'95 In a certain shop, each kind of product has an integer price. For example, the ...
- USACO 3.2 Contact
ContactIOI'98 The cows have developed a new interest in scanning the universe outside their farm wit ...
- cocos2d安装配置及打包成Android
vs+python+cocos2d python下载:点这里 这里需要下载Python 2.X版本.曾经以为要下载3.x版本 后来装上发现cocos2d-x提供的python运行报错,所以卸载以后重新 ...
- HihoCoder
#1043 : 完全背包 20160516 时间限制:20000ms 单点时限:1000ms 内存限制:256MB 描述 且说之前的故事里,小Hi和小Ho费劲心思终于拿到了茫茫多的奖券!而现在,终于到 ...
- django模板 实现奇偶分行
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- SpringFramework_module
org.springframework : spring-aop:基于代理的AOP spring-aspects:基于切面的AspectJ spring-beans:beans spring-cont ...
- 获取控件id
普通状态中JS获取控件IDdocument.getElementById('controlID'); JS获取父窗口控件IDwindow.parent.document.getElementById( ...
- (repost)在ARM Linux内核中增加一个新的系统调用
实验平台内核版本为4.0-rc1,增加一仅仅打印Hello World的syscall,最后我们在用户空间swi验证 实验平台内核版本为4.0-rc1,增加的系统调用仅仅是简单打印一个Hello Wo ...