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都分为:准备工作和操作阶 ...
随机推荐
- WPS Office 二次开发简易教程。
http://bbs.wps.cn/forum.php?mod=viewthread&tid=22004642
- SQL 判断 ‘表,存储过程,函数 ...’ 已是否存在
下面为您介绍sql下用了判断各种资源是否存在的代码,需要的朋友可以参考下,希望对您学习sql的函数及数据库能够有所帮助.库是否存在if exists(select * from master..sys ...
- 导入excel成一个list集合不支持大文件倒入(优化点在于分批分线程导入)
package com.bj58.saletb.news.utils; import org.apache.log4j.Logger; import org.apache.poi.ss.usermod ...
- ios监听ScrollView/TableView滚动的正确姿势
主要介绍 监测tableView垂直滚动的舒畅姿势 监测scrollView/collectionView横向滚动的正确姿势 1.监测tableView垂直滚动的舒畅姿势 通常我们用KVO或者在scr ...
- [Q]自定义保存位置及文件名
以“DWG To PDF.pc3”打印为例: 说明:<DrawingDirectory> 当前图纸所在目录<DrawingFolderName> 当前图纸文件所在文件夹名称&l ...
- 【angular】angular如何让传递变量参数+ng-change的使用
HTML: <div class="form-group"> <label class="col-sm-2 control-label"> ...
- 使用SyncToy 同步两台机器上的文件夹
@echo off echo 准备启动同步... net use \\WIN-AJH8QENQQGK "123456" /user:Administrator Z:\SyncToy ...
- python 学习 [day7]面向对象
编程模式概念 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发“更快更好更强...” 面向对象的三大 ...
- python升级2.7.5
一开始有这个需求,是因为用 YaH3C 替代 iNode 进行校园网认证时,一直编译错误,提示找不到 Python 的某个模块,百度了一下,此模块是在 Python2.7 以上才有的,但是系统的自带的 ...
- 雄冠条码PV系统-2016-05-17-收获
Q1:微信浏览器 input获取焦点时,页面宽度变大 解决方法: HTML <header> 中添加<meta name="viewport" content=& ...