好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

php备份数据库脚本的几个例子 - php高级应用

php备份数据库脚本的几个例子

利用php备份mysql数据库就是把数据生成.sql文件,这样就算是数据备份成功了,恢复时也可以直接读取再一条条执行即可,下面整理了一些备份例子大家有兴趣的可进来参考.

例子,代码如下:

<?php   // 备份数据库   $host  =  "localhost" ;  $user  =  "root" ;  //数据库账号   $password  =  "" ;  //数据库密码   $dbname  =  "mysql" ;  //数据库名称   // 这里的账号、密码、名称都是从页面传过来的   if  (!mysql_connect( $host ,  $user ,  $password ))  // 连接mysql数据库       {           echo   '数据库连接失败,请核对后再试' ;       exit ;  }   if  (!mysql_select_db( $dbname ))  // 是否存在该数据库       {           echo   '不存在数据库:'  .  $dbname  .  ',请核对后再试' ;       exit ;  }   mysql_query( "set names 'utf8'" );  $mysql  =  "set charset utf8;\r\n" ;  $q1  = mysql_query( "show tables" );  while  ( $t  = mysql_fetch_array( $q1 ))  {       $table  =  $t [0];       $q2  = mysql_query( "show create table `$table`" );       $sql  = mysql_fetch_array( $q2 );       $mysql  .=  $sql [ 'Create Table' ] .  ";\r\n" ;       $q3  = mysql_query( "select * from `$table`" );       while  ( $data  = mysql_fetch_assoc( $q3 ))      {           $keys  =  array_keys ( $data );           $keys  =  array_map ( 'addslashes' ,  $keys );           $keys  = join( '`,`' ,  $keys );           $keys  =  "`"  .  $keys  .  "`" ;           $vals  =  array_values ( $data );           $vals  =  array_map ( 'addslashes' ,  $vals );           $vals  = join( "','" ,  $vals );           $vals  =  "'"  .  $vals  .  "'" ;           $mysql  .=  "insert into `$table`($keys) values($vals);\r\n" ;      }   }     $filename  =  $dbname  .  date ( 'Ymjgi' ) .  ".sql" ;  //存放路径,默认存放到项目最外层   $fp  =  fopen ( $filename ,  'w' );  fputs ( $fp ,  $mysql );  fclose( $fp );  echo   "数据备份成功" ;    ?>   //例子,代码如下:   #!/usr/bin/php HdhCmsTestphpfensi测试数据  <?php  header( 'Content-Type:text/html;charset=utf-8' );    define( 'BACK_PATH' , dirname( __FILE__ ));    /**   为空数组就备份所有数据库   */   $back_databases  =  array ( 'learning' , 'wp' );    $mysql_host  =  'localhost' ;    $mysql_user  =  'root' ;    $mysql_passwd  =  'root' ;    if ( $conn  = mysql_connect( $mysql_host ,  $mysql_user ,  $mysql_passwd )){      $databases  =  array ();     mysql_select_db( 'mysql' ,  $conn );      $query   =mysql_query( 'show databases' , $conn );      while ( $row  = mysql_fetch_array( $query ))   {     if ( empty empty ( $row ))  continue ;         $database  =  $row [0];         if (! empty empty ( $back_databases ) && !in_array( $database ,  $back_databases ))  continue ;           $sql_dir  = BACK_PATH .  "/{$database}.sql" ;          $execs  =  "mysqldump --user={$mysql_user} --password={$mysql_passwd} {$database} > "  .  $sql_dir ;        system( $execs );         if ( file_exists ( $sql_dir  .  '.gz' )) {       unlink( $sql_dir  .  '.gz' );    }          system( 'gzip '  .  $sql_dir );   }  }  //例子,代码如下:   <?php   $host = "##mysql服务器地址##" ;   $user = "##登录帐号##" ;   $password = "##登录密码##" ;   $dbname = "##数据库名##" ;   $filename = "##备份文件路径##" ;   mysql_connect( $host , $user , $password );   mysql_select_db( $dbname );   $mysql .= "CREATE DATABASE IF NOT EXISTS `" . $dbname . "`;\r\n" ;   $mysql .= "USE `" . $dbname . "`;\r\n\r\n" ;   $q0 =mysql_query( "set names utf8" );   $q1 =mysql_query( "show tables" );   while ( $t =mysql_fetch_array( $q1 )){      $table = $t [0];      $mysql .= "DROP TABLE IF EXISTS `" . $table . "`;\r\n" ;      $q2 =mysql_query( "show create table `$table`" );      $sql =mysql_fetch_array( $q2 );      $mysql .= $sql [ 'Create Table' ]. ";\r\n\r\n" ;      $q3 =mysql_query( "select * from `$table`" );      while ( $data =mysql_fetch_assoc( $q3 )){        $keys = array_keys ( $data );        $keys = array_map ( 'addslashes' , $keys );        $keys =join( '`,`' , $keys );        $keys = "`" . $keys . "`" ;        $vals = array_values ( $data );        $vals = array_map ( 'addslashes' , $vals );        $vals =join( "','" , $vals );        $vals = "'" . $vals . "'" ;        $mysql .= "insert into `$table`($keys) values($vals);\r\n" ;     }      $mysql .= "\r\n" ;   }   $fp  =  fopen ( $filename , 'wb' );   fputs ( $fp , $mysql );   fclose( $fp );   include_once ( 'lib/pclzip.lib.php' );   $archive  =  new  PclZip( $filename . '.zip' );   $v_list  =  $archive ->create( $filename );   if  ( $v_list  == 0) {       die ( "Error : " . $archive ->errorInfo(true));   }   if ( file_exists ( $filename )){      unlink( $filename );   }   echo   "Mysql's backup successfully to " . $filename . ".zip" ;   ?>  

Zip打包备份代码,几乎就是全抄demo,太方便了,代码如下:

<?PHP   include_once ( 'lib/pclzip.lib.php' );   $src = "##源路径##" ;   $dest = "##目标zip路径##" ;   $archive  =  new  PclZip( $dest );   $v_list  =  $archive ->create( $src );   if  ( $v_list  == 0) {       die ( "Error : " . $archive ->errorInfo(true));   } else {        print( "Success" );   }   ?> 

pclzip.lib.php这个压缩包文件大家百度去下载这里未提供.

查看更多关于php备份数据库脚本的几个例子 - php高级应用的详细内容...

  阅读:44次