PHP Mysql数据库备份类程序总结
数据库备份类我们只要在网上一搜索在N多的类代码,下面我来总结几款不错数据库备份希望对大家有所帮助.
数据库备份类,使用方法,代码如下:
require_once ( "backdata.class.php" ); $link = @mysql_connect( "localhost" , "数据库名" , "密码" ) or die ( 'Could not connect to server.' ); mysql_query( "use cms" , $link ); mysql_query( "set names utf8" , $link ); //开源代码phpfensi测试数据 $dbbck = new backupData( $link ); //实例化它,只要一个链接标识就行了 //备份数据时,如想备份一个数据库中的所有表,你可这样写: $dbbck ->backupTables( "cms" , "./" , array ( '*' )); //备份数据时,如想备份一个数据库中的仅一个表时,你可这样写: $dbbck ->backupTables( "cms" , "./" , array ( 'user' )); //备份数据时,如想备份一个数据库中的多个表时,你可这样写: $dbbck ->backupTables( "cms" , "./" , array ( 'user' , 'acl' , 'informatoin' )); //注解:$dbbck->backupTables("参1","参2",array());中,参1为:数据库名
参2为:要存放备份数据的位置(即目录地址)
第三个为:你要保存那些表
backdata.class.php,代码如下:
<?php /* * *一个简单的Mysql备份数据类 * */ class backupData{ private $mysql_link ; //链接标识 private $dbName ; //数据库名 private $dataDir ; //数据所要存放的目录 private $tableNames ; //表名 public function __construct( $mysql_link ){ $this ->mysql_link = $mysql_link ; } public function backupTables( $dbName , $dataDir , $tableNames ){ //开始备份 $this ->dbName = $dbName ; $this ->dataDir = $dataDir ; $this ->tableNames = $tableNames ; $tables = $this ->delarray( $this ->tableNames); $sqls = '' ; foreach ( $tables as $tablename ){ if ( $tablename == '' ){ //表不存在时 continue ; } //************************以下是形成SQL的前半部分************** //如果存在表,就先删除 $sqls .= "DROP TABLE IF EXISTS $tablename;n" ; //读取表结构 $rs = mysql_query( "SHOW CREATE TABLE $tablename" , $this ->mysql_link); $row =mysql_fetch_row( $rs ); //获得表结构组成SQL $sqls .= $row [ '1' ]. ";nn" ; unset( $rs ); unset( $row ); //************************以下是形成SQL的后半部分************** //查寻出表中的所有数据 $rs =mysql_query( "select * from $tablename" , $this ->mysql_link); //表的字段个数 $field =mysql_num_fields( $rs ); //形成此种SQL语句:"INSERT INTO `groups` VALUES('1499e0ca25988d','主任','','0');" while ( $rows =mysql_fetch_row( $rs )){ $comma = '' ; //逗号 $sqls .= "INSERT INTO `$tablename` VALUES(" ; for ( $i =0; $i < $field ; $i ++){ $sqls .= $comma . "'" . $rows [ $i ]. "'" ; $comma = ',' ; } $sqls .= ");nnn" ; } } $backfilepath = $this ->dataDir. date ( "Ymdhis" ,time()). '.sql' ; //写入文件 $filehandle = fopen ( $backfilepath , "w" ); fwrite( $filehandle , $sqls ); fclose( $filehandle ); } private function delarray( $array ){ //处理传入进来的数组 foreach ( $array as $tables ){ if ( $tables == '*' ){ //所有的表(获得表名时不能按常规方式来组成一个数组) $newtables =mysql_list_tables( $this ->dbName, $this ->mysql_link); $tableList = array (); for ( $i = 0; $i < mysql_numrows( $newtables ); $i ++){ array_push ( $tableList ,mysql_tablename( $newtables , $i )); } $tableList = $tableList ; } else { $tableList = $array ; break ; } } return $tableList ; } } ?>查看更多关于PHP Mysql数据库备份类程序总结 - php高级应用的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did30500