GVKun编程网logo

thinkphp备份数据库的方法分享(thinkphp数据库备份与还原)

15

在本文中,我们将带你了解thinkphp备份数据库的方法分享在这篇文章中,我们将为您详细介绍thinkphp备份数据库的方法分享的方方面面,并解答thinkphp数据库备份与还原常见的疑惑,同时我们还

在本文中,我们将带你了解thinkphp备份数据库的方法分享在这篇文章中,我们将为您详细介绍thinkphp备份数据库的方法分享的方方面面,并解答thinkphp数据库备份与还原常见的疑惑,同时我们还将给您一些技巧,以帮助您实现更有效的php备份数据库类分享、php备份数据库类分享_PHP、php备份数据库类分享_php技巧、php备份数据库类分享_PHP教程

本文目录一览:

thinkphp备份数据库的方法分享(thinkphp数据库备份与还原)

thinkphp备份数据库的方法分享(thinkphp数据库备份与还原)

貌似THINKPHP没有备份数据库的方法,所以我自己写了一个,数据库连接和事务处理用的是pdo,如果有需要的可以联系我,写个MysqL或者MysqLi的

代码如下:
outputsql($host,$dbname,$user,$password); /*下载导出数据库*/ header(“Content-disposition: attachment; filename=$dbname.sql”); echo $outstream; } /* * 数据库导出函数outputsql * 用PDO方式导出数据库数据 * $host 主机名 如localhost * $dbname 数据库名 * $user 用户名 * $password 密码 * $flag 标志位0或1 0为仅导出数据库结构 1为导出数据库结构和数据 默认为1 */ private function outputsql($host,$password,$flag=1) { try { $pdo = new PDO(“MysqL:host=$host;dbname=$dbname”,$password); //连接数据库 $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); //设置调优参数,遇到错误抛出异常 } catch (PDOException $e) { echo $e->getMessage(); //如果连接异常则抛出错误信息 exit; } $MysqL = “DROP DATABASE IF EXISTS `$dbname`;\n”; //$MysqL装载sql语句,这里如果存在数据库则drop该数据库 $creat_db=$pdo->query(“show create database $dbname”)->fetch();//用show create database查看sql语句 preg_match(‘/DEFAULT CHaraCTER SET(.*)\*/',$creat_db[‘Create Database'],$matches);//正则取出DEFAULT CHaraCTER SET 后面的字符集 $MysqL.=”CREATE DATABASE `$dbname` DEFAULT CHaraCTER SET $matches[1]”;//该语句如CREATE DATABASE `test_db` DEFAULT CHaraCTER SET utf8 /*查找该数据库的字符整序如COLLATE utf8_general_ci*/ $db_collate=$pdo->query(“SELECT DEFAULT_COLLATION_NAME FROM information_schema.SCHEMATA WHERE SCHEMA_NAME ='$dbname' LIMIT 1″)->fetch(); $MysqL.=”COLLATE “.$db_collate[‘DEFAULT_COLLATION_NAME'].”;\nUSE `$dbname`;\n\n”; $statments = $pdo->query(“show tables”); //返回结果集,show tables检视所有表名 foreach ($statments as $value) {//遍历此结果集,导出每个表名对应的信息 $table_name = $value[0]; //获取该表名 $MysqL.=”DROP TABLE IF EXISTS `$table_name`;\n”; //每个表前都准备Drop语句 $table_query = $pdo->query(“show create table `$table_name`”); //取出该表建表信息的结果集 $create_sql = $table_query->fetch(); //利用fetch方法取出该结果集对应的数组 $MysqL.=$create_sql[‘Create Table'] . “;\r\n\r\n”; //写入建表信息 if ($flag != 0) {//如果标志位不是0则继续取出该表内容生成insert语句 $iteams_query = $pdo->query(“select * from `$table_name`”); //取出该表所有字段结果集 $values = “”; //准备空字符串装载insert value值 $items = “”; //准备空字符串装载该表字段名 while ($item_query = $iteams_query->fetch(PDO::FETCH_ASSOC)) { //用关联查询方式返回表中字段名和值的数组 $item_names = array_keys($item_query); //取出该数组键值 即字段名 $item_names = array_map(“addslashes”,$item_names); //将特殊字符转译加\ $items = join(‘`,`',$item_names); //联合字段名 如:items1`,`item2 `符号为反引号 键盘1旁边 字段名用反引号括起 $item_values = array_values($item_query); //取出该数组值 即字段对应的值 $item_values = array_map(“addslashes”,$item_values); //将特殊字符转译加\ $value_string = join(“‘,'”,$item_values); //联合值 如:value1′,'value2 值用单引号括起 $value_string = “(‘” . $value_string . “‘),”; //值两边加括号 $values.=”\n” . $value_string; //最后返回给$value } if ($values != “”) {//如果$values不为空,即该表有内容 //写入insert语句 $insert_sql = “INSERT INTO `$table_name` (`$items`) VALUES” . rtrim($values,“,”) . “;\n\r”; //将该语句写入$MysqL $MysqL.=$insert_sql; } }

} return $MysqL; } } ?>

是不是很实用的功能呢,小伙伴们可以直接移植到自己的项目中去的。

php备份数据库类分享

php备份数据库类分享

本文实例讲述了php实现MySQL数据库备份类。分享给大家供大家参考。具体分析如下:这是一个非常简单的利用php来备份mysql数据库的类文件,我们只要简单的配置好连

php备份数据库类分享

''; $link = mysql_connect($DbHost, $DbUser, $DbPwd) or die(''数据库连接失败: '' . mysql_error()); mysql_select_db($DbName) or die(''数据库连接失败: '' . mysql_error()); mysql_query(''set names utf8''); // 声明变量 $isDropInfo = ''''; $insertSQL = ''''; $row = array(); $tables = array(); $tableStructure = array(); $fileName = ($saveFileName ? $saveFileName : ''MySQL_data_bakeup_'') . date(''YmdHis'') . ''.sql''; // 枚举该数据库所有的表 $res = mysql_query("SHOW TABLES FROM $DbName"); while ($row = mysql_fetch_row($res)) { $tables[] = $row[0]; } mysql_free_result($res); // 枚举所有表的创建语句 foreach ($tables as $val) { $res = mysql_query("show create table $val", $link); $row = mysql_fetch_row($res); $isDropInfo = "DROP TABLE IF EXISTS `" . $val . "`;\r\n"; $tableStructure = $isDropInfo . $row[1] . ";\r\n"; file_put_contents($fileName, $tableStructure, FILE_APPEND); mysql_free_result($res); } // 枚举所有表的INSERT语句 foreach ($tables as $val) { $res = mysql_query("select * from $val"); // 没有数据的表不执行insert while ($row = mysql_fetch_row($res)) { $sqlStr = "INSERT INTO `".$val."` VALUES ("; foreach($row as $v){ $sqlStr .= "''$v'',"; } //去掉最后一个逗号 $sqlStr = substr($sqlStr, 0, strlen($sqlStr) - 1); $sqlStr .= ");\r\n"; file_put_contents($fileName, $sqlStr, FILE_APPEND); } mysql_free_result($res); } echo ''数据备份成功!''; }    // 调用此方法 backupMySqlData(''localhost'', ''root'', ''123456'', ''YouDbName''); ?>

以上所述就是本文的全部内容了,希望大家能够喜欢。

php备份数据库类分享_PHP

php备份数据库类分享_PHP

php备份数据库类分享

<&#63;php
  /**
  *  
  *  @name php备份数据库 
  *  @param string  $DbHost    连接主机
  *  @param string  $DbUser    用户名
  *  @param string  $DbPwd    连接密码
  *  @param string  $DbName    要备份的数据库
  *  @param string  $saveFileName 要保存的文件名, 默认文件保存在当前文件夹中,以日期作区分
  *  @return Null
  *  @example backupMySqlData(''localhost'', ''root'', ''123456'', ''YourDbName'');
  *
  */
  function backupMySqlData($DbHost, $DbUser, $DbPwd, $DbName, $saveFileName = '''')
  {
    header("Content-type:text/html;charset=utf-8");
    error_reporting(0);
    set_time_limit(0);

    echo ''数据备份中,请稍候......<br />'';

    $link = mysql_connect($DbHost, $DbUser, $DbPwd) or die(''数据库连接失败: '' . mysql_error());
    mysql_select_db($DbName) or die(''数据库连接失败: '' . mysql_error());
    mysql_query(''set names utf8'');
    
    // 声明变量
    $isDropInfo   = '''';
    $insertSQL   = '''';
    $row      = array();
    $tables     = array();
    $tableStructure = array();
    $fileName    = ($saveFileName &#63; $saveFileName : ''MySQL_data_bakeup_'') . date(''YmdHis'') . ''.sql'';

    // 枚举该数据库所有的表
    $res = mysql_query("SHOW TABLES FROM $DbName");
    while ($row = mysql_fetch_row($res)) {

      $tables[] = $row[0];

    }
    mysql_free_result($res);

    // 枚举所有表的创建语句
    foreach ($tables as $val) {

      $res = mysql_query("show create table $val", $link);
      $row = mysql_fetch_row($res);

      $isDropInfo   = "DROP TABLE IF EXISTS `" . $val . "`;\r\n";
      $tableStructure = $isDropInfo . $row[1] . ";\r\n";

      file_put_contents($fileName, $tableStructure, FILE_APPEND);
      mysql_free_result($res);
    }

    // 枚举所有表的INSERT语句
    foreach ($tables as $val) {

      $res = mysql_query("select * from $val");

      // 没有数据的表不执行insert
      while ($row = mysql_fetch_row($res)) {

        $sqlStr = "INSERT INTO `".$val."` VALUES (";

        foreach($row as $v){

          $sqlStr .= "''$v'',";

        }
        //去掉最后一个逗号
        $sqlStr = substr($sqlStr, 0, strlen($sqlStr) - 1);
        $sqlStr .= ");\r\n";

        file_put_contents($fileName, $sqlStr, FILE_APPEND);
      }
      mysql_free_result($res);
    }

    echo ''数据备份成功!'';
  }
   // 调用此方法 
  backupMySqlData(''localhost'', ''root'', ''123456'', ''YouDbName'');  
&#63;>
登录后复制

以上所述就是本文的全部内容了,希望大家能够喜欢。

php备份数据库类分享_php技巧

php备份数据库类分享_php技巧

php备份数据库类分享

<&#63;php
  /**
  *  
  *  @name php备份数据库 
  *  @param string  $DbHost    连接主机
  *  @param string  $DbUser    用户名
  *  @param string  $DbPwd    连接密码
  *  @param string  $DbName    要备份的数据库
  *  @param string  $saveFileName 要保存的文件名, 默认文件保存在当前文件夹中,以日期作区分
  *  @return Null
  *  @example backupMySqlData(''localhost'', ''root'', ''123456'', ''YourDbName'');
  *
  */
  function backupMySqlData($DbHost, $DbUser, $DbPwd, $DbName, $saveFileName = '''')
  {
    header("Content-type:text/html;charset=utf-8");
    error_reporting(0);
    set_time_limit(0);

    echo ''数据备份中,请稍候......<br />'';

    $link = mysql_connect($DbHost, $DbUser, $DbPwd) or die(''数据库连接失败: '' . mysql_error());
    mysql_select_db($DbName) or die(''数据库连接失败: '' . mysql_error());
    mysql_query(''set names utf8'');
    
    // 声明变量
    $isDropInfo   = '''';
    $insertSQL   = '''';
    $row      = array();
    $tables     = array();
    $tableStructure = array();
    $fileName    = ($saveFileName &#63; $saveFileName : ''MySQL_data_bakeup_'') . date(''YmdHis'') . ''.sql'';

    // 枚举该数据库所有的表
    $res = mysql_query("SHOW TABLES FROM $DbName");
    while ($row = mysql_fetch_row($res)) {

      $tables[] = $row[0];

    }
    mysql_free_result($res);

    // 枚举所有表的创建语句
    foreach ($tables as $val) {

      $res = mysql_query("show create table $val", $link);
      $row = mysql_fetch_row($res);

      $isDropInfo   = "DROP TABLE IF EXISTS `" . $val . "`;\r\n";
      $tableStructure = $isDropInfo . $row[1] . ";\r\n";

      file_put_contents($fileName, $tableStructure, FILE_APPEND);
      mysql_free_result($res);
    }

    // 枚举所有表的INSERT语句
    foreach ($tables as $val) {

      $res = mysql_query("select * from $val");

      // 没有数据的表不执行insert
      while ($row = mysql_fetch_row($res)) {

        $sqlStr = "INSERT INTO `".$val."` VALUES (";

        foreach($row as $v){

          $sqlStr .= "''$v'',";

        }
        //去掉最后一个逗号
        $sqlStr = substr($sqlStr, 0, strlen($sqlStr) - 1);
        $sqlStr .= ");\r\n";

        file_put_contents($fileName, $sqlStr, FILE_APPEND);
      }
      mysql_free_result($res);
    }

    echo ''数据备份成功!'';
  }
   // 调用此方法 
  backupMySqlData(''localhost'', ''root'', ''123456'', ''YouDbName'');  
&#63;>
登录后复制

以上所述就是本文的全部内容了,希望大家能够喜欢。

php备份数据库类分享_PHP教程

php备份数据库类分享_PHP教程

php备份数据库类分享

 php备份数据库类分享

1

2

3

4

立即学习“PHP免费学习笔记(深入)”;

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

/**

*

* @name php备份数据库

* @param string $DbHost 连接主机

* @param string $DbUser 用户名

* @param string $DbPwd 连接密码

* @param string $DbName 要备份的数据库

* @param string $saveFileName 要保存的文件名, 默认文件保存在当前文件夹中,以日期作区分

* @return Null

* @example backupMySqlData(''localhost'', ''root'', ''123456'', ''YourDbName'');

*

*/

function backupMySqlData($DbHost, $DbUser, $DbPwd, $DbName, $saveFileName = '''')

{

header("Content-type:text/html;charset=utf-8");

error_reporting(0);

set_time_limit(0);

 

echo ''数据备份中,请稍候......
'';

 

$link = mysql_connect($DbHost, $DbUser, $DbPwd) or die(''数据库连接失败: '' . mysql_error());

mysql_select_db($DbName) or die(''数据库连接失败: '' . mysql_error());

mysql_query(''set names utf8'');

 

// 声明变量

$isDropInfo = '''';

$insertSQL = '''';

$row = array();

$tables = array();

$tableStructure = array();

$fileName = ($saveFileName ? $saveFileName : ''MySQL_data_bakeup_'') . date(''YmdHis'') . ''.sql'';

 

// 枚举该数据库所有的表

$res = mysql_query("SHOW TABLES FROM $DbName");

while ($row = mysql_fetch_row($res)) {

 

$tables[] = $row[0];

 

}

mysql_free_result($res);

 

// 枚举所有表的创建语句

foreach ($tables as $val) {

 

$res = mysql_query("show create table $val", $link);

$row = mysql_fetch_row($res);

 

$isDropInfo = "DROP TABLE IF EXISTS `" . $val . "`;\r\n";

$tableStructure = $isDropInfo . $row[1] . ";\r\n";

 

file_put_contents($fileName, $tableStructure, FILE_APPEND);

mysql_free_result($res);

}

 

// 枚举所有表的INSERT语句

foreach ($tables as $val) {

 

$res = mysql_query("select * from $val");

 

// 没有数据的表不执行insert

while ($row = mysql_fetch_row($res)) {

 

$sqlStr = "INSERT INTO `".$val."` VALUES (";

 

foreach($row as $v){

 

$sqlStr .= "''$v'',";

 

}

//去掉最后一个逗号

$sqlStr = substr($sqlStr, 0, strlen($sqlStr) - 1);

$sqlStr .= ");\r\n";

 

file_put_contents($fileName, $sqlStr, FILE_APPEND);

}

mysql_free_result($res);

}

 

echo ''数据备份成功!'';

}

   // 调用此方法

backupMySqlData(''localhost'', ''root'', ''123456'', ''YouDbName'');

?>

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/983323.htmlTechArticlephp备份数据库类分享 php备份数据库类分享 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 4...

今天关于thinkphp备份数据库的方法分享thinkphp数据库备份与还原的分享就到这里,希望大家有所收获,若想了解更多关于php备份数据库类分享、php备份数据库类分享_PHP、php备份数据库类分享_php技巧、php备份数据库类分享_PHP教程等相关知识,可以在本站进行查询。

本文标签:

上一篇Thinkphp中的curd应用实用要点(thinkphp curl)

下一篇java – API’variable.getMergeResources()’已过时,已替换为’variant.getMergeResourcesProvider()’