利用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 <?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 (emptyempty($row)) continue; $database = $row[0]; if (!emptyempty($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这个压缩包文件大家百度去下载这里未提供 .
文章地址:
转载随意^^请带上本文地址!