0

0

php数据备份:单表备份 整表备份 导入数据库

php中文网

php中文网

发布时间:2016-07-25 09:04:15

|

1313人浏览过

|

来源于php中文网

原创

  1. class Db
  2. {
  3. var $conn;
  4. function Db($host="localhost",$user="root",$pass="root",$db="test")
  5. {
  6. if(!$this->conn=mysql_connect($host,$user,$pass))
  7. die("can't connect to mysql sever");
  8. mysql_select_db($db,$this->conn);
  9. mysql_query("SET NAMES 'UTF-8'");
  10. }
  11. function execute($sql)
  12. {
  13. return mysql_query($sql,$this->conn);
  14. }
  15. function findCount($sql)
  16. {
  17. $result=$this->execute($sql);
  18. return mysql_num_rows($result);
  19. }
  20. function findBySql($sql)
  21. {
  22. $array=array();
  23. $result=mysql_query($sql);
  24. $i=0;
  25. while($row=mysql_fetch_assoc($result))
  26. {
  27. $array[$i]=$row;
  28. $i++;
  29. }
  30. return $array;
  31. }
  32. //$con的几种情况
  33. //空:返回全部记录
  34. //array:eg. array('id'=>'1') 返回id=1的记录
  35. //string :eg. 'id=1' 返回id=1的记录
  36. function toExtJson($table,$start="0",$limit="10",$cons="")
  37. {
  38. $sql=$this->generateSql($table,$cons);
  39. $totalNum=$this->findCount($sql);
  40. $result=$this->findBySql($sql." LIMIT ".$start." ,".$limit);
  41. $resultNum = count($result);//当前结果数
  42. $str="";
  43. $str.= "{";
  44. $str.= "'totalCount':'$totalNum',";
  45. $str.="'rows':";
  46. $str.="[";
  47. for($i=0;$i $str.="{";
  48. $count=count($result[$i]);
  49. $j=1;
  50. foreach($result[$i] as $key=>$val)
  51. {
  52. if($j {
  53. $str.="'".$key."':'".$val."',";
  54. }
  55. elseif($j==$count)
  56. {
  57. $str.="'".$key."':'".$val."'";
  58. }
  59. $j++;
  60. }
  61. $str.="}";
  62. if ($i != $resultNum-1) {
  63. $str.= ",";
  64. }
  65. }
  66. $str.="]";
  67. $str.="}";
  68. return $str;
  69. }
  70. function generateSql($table,$cons)
  71. {
  72. $sql="";//sql条件
  73. $sql="select * from ".$table;
  74. if($cons!="")
  75. {
  76. if(is_array($cons))
  77. {
  78. $k=0;
  79. foreach($cons as $key=>$val)
  80. {
  81. if($k==0)
  82. {
  83. $sql.="where '";
  84. $sql.=$key;
  85. $sql.="'='";
  86. $sql.=$val."'";
  87. }else
  88. {
  89. $sql.="and '";
  90. $sql.=$key;
  91. $sql.="'='";
  92. $sql.=$val."'";
  93. }
  94. $k++;
  95. }
  96. }else
  97. {
  98. $sql.=" where ".$cons;
  99. }
  100. }
  101. return $sql;
  102. }
  103. function toExtXml($table,$start="0",$limit="10",$cons="")
  104. {
  105. $sql=$this->generateSql($table,$cons);
  106. $totalNum=$this->findCount($sql);
  107. $result=$this->findBySql($sql." LIMIT ".$start." ,".$limit);
  108. $resultNum = count($result);//当前结果数
  109. header("Content-Type: text/xml");
  110. $xml="\n";
  111. $xml.="\n";
  112. $xml.="\t".$totalNum."\n";
  113. $xml.="\t\n";
  114. for($i=0;$i $xml.="\t\t\n";
  115. foreach($result[$i] as $key=>$val)
  116. $xml.="\t\t\t".$val."".$key.">\n";
  117. $xml.="\t\t
  118. \n";
  119. }
  120. $xml.="\t
  121. \n";
  122. $xml.="
  123. \n";
  124. return $xml;
  125. }
  126. //输出word表格
  127. function toWord($table,$mapping,$fileName)
  128. {
  129. header('Content-type: application/doc');
  130. header('Content-Disposition: attachment; filename="'.$fileName.'.doc"');
  131. echo ' xmlns:w="urn:schemas-microsoft-com:office:word"
  132. xmlns="http://www.w3.org/TR/REC-html40">
  133. '.$fileName.'
  134. ';
  135. echo'';
  136. if(is_array($mapping))
  137. {
  138. foreach($mapping as $key=>$val)
  139. echo'
  140. ';
  141. }
  142. echo'
  143. ';
  144. $results=$this->findBySql('select * from '.$table);
  145. foreach($results as $result)
  146. {
  147. echo'
  148. ';
  149. foreach($result as $key=>$val)
  150. echo'
  151. ';
  152. echo'
  153. ';
  154. }
  155. echo'
  156. '.$val.'
    '.$val.'
    ';
  157. echo'';
  158. echo'';
  159. }
  160. function toExcel($table,$mapping,$fileName)
  161. {
  162. header("Content-type:application/vnd.ms-excel");
  163. header("Content-Disposition:filename=".$fileName.".xls");
  164. echo' xmlns:x="urn:schemas-microsoft-com:office:excel"
  165. xmlns="http://www.w3.org/TR/REC-html40">
  166. ';
  167. echo'';
  168. echo'
  169. ';
  170. if(is_array($mapping))
  171. {
  172. foreach($mapping as $key=>$val)
  173. echo'
  174. ';
  175. }
  176. echo'
  177. ';
  178. $results=$this->findBySql('select * from '.$table);
  179. foreach($results as $result)
  180. {
  181. echo'
  182. ';
  183. foreach($result as $key=>$val)
  184. echo'
  185. ';
  186. echo'
  187. ';
  188. }
  189. echo'
  190. '.$val.'
    '.$val.'
    ';
  191. echo'';
  192. echo'';
  193. }
  194. function Backup($table)
  195. {
  196. if(is_array ($table))
  197. {
  198. $str="";
  199. foreach($table as $tab)
  200. $str.=$this->get_table_content($tab);
  201. return $str;
  202. }else{
  203. return $this->get_table_content($table);
  204. }
  205. }
  206. function Backuptofile($table,$file)
  207. {
  208. header("Content-disposition: filename=$file.sql");//所保存的文件名
  209. header("Content-type: application/octetstream");
  210. header("Pragma: no-cache");
  211. header("Expires: 0");
  212. if(is_array ($table))
  213. {
  214. $str="";
  215. foreach($table as $tab)
  216. $str.=$this->get_table_content($tab);
  217. echo $str;
  218. }else{
  219. echo $this->get_table_content($table);
  220. }
  221. }
  222. function Restore($table,$file="",$content="")
  223. {
  224. //排除file,content都为空或者都不为空的情况
  225. if(($file==""&&$content=="")||($file!=""&&$content!=""))
  226. echo"参数错误";
  227. $this->truncate($table);
  228. if($file!="")
  229. {
  230. if($this->RestoreFromFile($file))
  231. return true;
  232. else
  233. return false;
  234. }
  235. if($content!="")
  236. {
  237. if($this->RestoreFromContent($content))
  238. return true;
  239. else
  240. return false;
  241. }
  242. }
  243. //清空表,以便恢复数据
  244. function truncate($table)
  245. {
  246. if(is_array ($table))
  247. {
  248. $str="";
  249. foreach($table as $tab)
  250. $this->execute("TRUNCATE TABLE $tab");
  251. }else{
  252. $this->execute("TRUNCATE TABLE $table");
  253. }
  254. }
  255. function get_table_content($table)
  256. {
  257. $results=$this->findBySql("select * from $table");
  258. $temp = "";
  259. $crlf="
    ";
  260. foreach($results as $result)
  261. {
  262. /*(";
  263. foreach($result as $key=>$val)
  264. {
  265. $schema_insert .= " `".$key."`,";
  266. }
  267. $schema_insert = ereg_replace(",$", "", $schema_insert);
  268. $schema_insert .= ")
  269. */
  270. $schema_insert = "INSERT INTO $table VALUES (";
  271. foreach($result as $key=>$val)
  272. {
  273. if($val != "")
  274. $schema_insert .= " '".addslashes($val)."',";
  275. else
  276. $schema_insert .= "NULL,";
  277. }
  278. $schema_insert = ereg_replace(",$", "", $schema_insert);
  279. $schema_insert .= ");$crlf";
  280. $temp = $temp.$schema_insert ;
  281. }
  282. return $temp;
  283. }
  284. function RestoreFromFile($file){
  285. if (false !== ($fp = fopen($file, 'r'))) {
  286. $sql_queries = trim(fread($fp, filesize($file)));
  287. $this->splitMySqlFile($pieces, $sql_queries);
  288. foreach ($pieces as $query) {
  289. if(!$this->execute(trim($query)))
  290. return false;
  291. }
  292. return true;
  293. }
  294. return false;
  295. }
  296. function RestoreFromContent($content)
  297. {
  298. $content = trim($content);
  299. $this->splitMySqlFile($pieces, $content);
  300. foreach ($pieces as $query) {
  301. if(!$this->execute(trim($query)))
  302. return false;
  303. }
  304. return true;
  305. }
  306. function splitMySqlFile(&$ret, $sql)
  307. {
  308. $sql= trim($sql);
  309. $sql=split(';',$sql);
  310. $arr=array();
  311. foreach($sql as $sq)
  312. {
  313. if($sq!="");
  314. $arr[]=$sq;
  315. }
  316. $ret=$arr;
  317. return true;
  318. }
  319. }
  320. $db=new db();
  321. // 生成 word
  322. //$map=array('No','Name','Email','Age');
  323. //echo $db->toWord('test',$map,'档案');
  324. // 生成 Excel
  325. //$map=array('No','Name','Email','Age');
  326. //echo $db->toExcel('test',$map,'档案');
  327. // 生成 Xml
  328. //echo $db->toExtXml('test',0,20);
  329. // 生成 Json
  330. //echo $db->toExtJson('test',0,20);
  331. //备份
  332. //echo $db->Backuptofile('test','backup');
  333. ?>
复制代码

2、整表备份 1 2 下一页 尾页

简灰服装商城整站 For SHOPEX
简灰服装商城整站 For SHOPEX

SHOPEX简灰服装商城整站源码下载。 安装方法:1.解压上传程序至网站根目录.. 访问:域名/bak.(用户名:admin 密码:123456)2.进入帝国备份王后,配置数据库数据库信息.选择-www.taomoban.net目录.还原数据库.3.修改FTP目录下的config/config.phpphp 数据库连接信息.4.登陆网站后台--清空缓存..5.删除bak文件夹 后台:shopadm

下载


相关文章

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Word 字间距调整方法汇总
Word 字间距调整方法汇总

本专题整合了Word字间距调整方法,阅读下面的文章了解更详细操作。

2

2025.12.24

任务管理器教程
任务管理器教程

本专题整合了任务管理器相关教程,阅读下面的文章了解更多详细操作。

2

2025.12.24

AppleID格式
AppleID格式

本专题整合了AppleID相关内容,阅读专题下面的文章了解更多详细教程。

0

2025.12.24

csgo视频观看入口合集
csgo视频观看入口合集

本专题整合了csgo观看入口合集,阅读下面的文章了知道更多入口地址。

29

2025.12.24

yandex外贸入口合集
yandex外贸入口合集

本专题汇总了yandex外贸入口地址,阅读下面的文章了解更多内容。

58

2025.12.24

添加脚注通用方法
添加脚注通用方法

本专题整合了添加脚注方法合集,阅读专题下面的文章了解更多内容。

1

2025.12.24

重启电脑教程汇总
重启电脑教程汇总

本专题整合了重启电脑操作教程,阅读下面的文章了解更多详细教程。

3

2025.12.24

纸张尺寸汇总
纸张尺寸汇总

本专题整合了纸张尺寸相关内容,阅读专题下面的文章了解更多内容。

5

2025.12.24

Java Spring Boot 微服务实战
Java Spring Boot 微服务实战

本专题深入讲解 Java Spring Boot 在微服务架构中的应用,内容涵盖服务注册与发现、REST API开发、配置中心、负载均衡、熔断与限流、日志与监控。通过实际项目案例(如电商订单系统),帮助开发者掌握 从单体应用迁移到高可用微服务系统的完整流程与实战能力。

1

2025.12.24

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP零基础通关宝典
PHP零基础通关宝典

共78课时 | 9.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号