php备份数据库类分享

PHP备份数据库分享

rush:PHP;"> 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 = <a href="https://www.jb51.cc/tag/MysqL/" target="_blank" class="keywords">MysqL</a>_connect($DbHost,$DbPwd) or die('<a href="https://www.jb51.cc/tag/shujuku/" target="_blank" class="keywords">数据库</a>连接失败: ' . <a href="https://www.jb51.cc/tag/MysqL/" target="_blank" class="keywords">MysqL</a>_error());
<a href="https://www.jb51.cc/tag/MysqL/" target="_blank" class="keywords">MysqL</a>_select_db($<a href="https://www.jb51.cc/tag/dbn/" target="_blank" class="keywords">dbn</a>ame) or die('<a href="https://www.jb51.cc/tag/shujuku/" target="_blank" class="keywords">数据库</a>连接失败: ' . <a href="https://www.jb51.cc/tag/MysqL/" target="_blank" class="keywords">MysqL</a>_error());
<a href="https://www.jb51.cc/tag/MysqL/" target="_blank" class="keywords">MysqL</a>_query('set names utf8');

// 声明变量
$isDropInfo   = '';
$insert<a href="https://www.jb51.cc/tag/sql/" target="_blank" class="keywords">sql</a>   = '';
$row      = array();
$tables     = array();
$tableStructure = array();
$fileName    = ($saveFileName ? $saveFileName : '<a href="https://www.jb51.cc/tag/MysqL/" target="_blank" class="keywords">MysqL</a>_data_bakeup_') . date('YmdHis') . '.<a href="https://www.jb51.cc/tag/sql/" target="_blank" class="keywords">sql</a>';

// 枚举该<a href="https://www.jb51.cc/tag/shujuku/" target="_blank" class="keywords">数据库</a>所有的表
$res = <a href="https://www.jb51.cc/tag/MysqL/" target="_blank" class="keywords">MysqL</a>_query("SHOW TABLES FROM $<a href="https://www.jb51.cc/tag/dbn/" target="_blank" class="keywords">dbn</a>ame");
while ($row = <a href="https://www.jb51.cc/tag/MysqL/" target="_blank" class="keywords">MysqL</a>_fetch_row($res)) {

  $tables[] = $row[0];

}
<a href="https://www.jb51.cc/tag/MysqL/" target="_blank" class="keywords">MysqL</a>_free_result($res);

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

  $res = <a href="https://www.jb51.cc/tag/MysqL/" target="_blank" class="keywords">MysqL</a>_query("show create table $val",$link);
  $row = <a href="https://www.jb51.cc/tag/MysqL/" target="_blank" class="keywords">MysqL</a>_fetch_row($res);

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

  file_put_contents($fileName,$tableStructure,FILE_APPEND);
  <a href="https://www.jb51.cc/tag/MysqL/" target="_blank" class="keywords">MysqL</a>_free_result($res);
}

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

  $res = <a href="https://www.jb51.cc/tag/MysqL/" target="_blank" class="keywords">MysqL</a>_query("select * from $val");

  // 没有数据的表不执行insert
  while ($row = <a href="https://www.jb51.cc/tag/MysqL/" target="_blank" class="keywords">MysqL</a>_fetch_row($res)) {

    $<a href="https://www.jb51.cc/tag/sql/" target="_blank" class="keywords">sql</a>Str = "INSERT INTO `".$val."` VALUES (";

    foreach($row as $v){

      $<a href="https://www.jb51.cc/tag/sql/" target="_blank" class="keywords">sql</a>Str .= "'$v',";

    }
    //去掉最后<a href="https://www.jb51.cc/tag/yige/" target="_blank" class="keywords">一个</a>逗号
    $<a href="https://www.jb51.cc/tag/sql/" target="_blank" class="keywords">sql</a>Str = substr($<a href="https://www.jb51.cc/tag/sql/" target="_blank" class="keywords">sql</a>Str,strlen($<a href="https://www.jb51.cc/tag/sql/" target="_blank" class="keywords">sql</a>Str) - 1);
    $<a href="https://www.jb51.cc/tag/sql/" target="_blank" class="keywords">sql</a>Str .= ");\r\n";

    file_put_contents($fileName,$<a href="https://www.jb51.cc/tag/sql/" target="_blank" class="keywords">sql</a>Str,FILE_APPEND);
  }
  <a href="https://www.jb51.cc/tag/MysqL/" target="_blank" class="keywords">MysqL</a>_free_result($res);
}

echo '数据备份成功!';

}
   // 调用方法
backupMysqLData('localhost','Youdbname');
?>

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

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...