php 备份mysql数据库(joomla数据库可直接使用,其他数据库稍作修改即可)

<?php

require_once('configuration.php');

$jconfig = new JConfig();

$connect = mysql_connect($jconfig->host ,$jconfig->user, $jconfig->password);

$result = mysql_list_tables($jconfig->db); 

$tables = array();

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

	$tables[] =  $row[0];

}



mysql_select_db($jconfig->db);

$sql = '';

foreach($tables as $table){

	$sql .= backupTable($table);

}



$r = file_put_contents('tmp/backup_'.date('Y-m-d-H-i-s').'.sql', $sql);



if($r){

	die('success');

}else{

	die('lalala');

}



mysql_close($connect);



function backupTable($table){

	$sqltxt = "DROP TABLE IF EXISTS $table;\n";

	

	$result = mysql_query("SHOW CREATE TABLE $table");

	$row = mysql_fetch_assoc($result);

	$createsql = $row['Create Table'];

	$sqltxt .= $createsql.";\n\n";



	$result = mysql_query("SELECT * FROM $table");

	

	$rows = array();

	while($row = mysql_fetch_assoc($result)){

		$fields = array();

		foreach($row as $field){

			$fields[] = '\''.mysql_escape_string($field).'\'';

		}

		

		$rows[] = '('.implode(',', $fields).')';

	}

	if(!empty($rows)){

		$sqltxt .= "INSERT INTO `$table` VALUES".implode(",\n", $rows).";\n";

	}

	

	

	$sqltxt .= "\n";



	return $sqltxt;

}



你可能感兴趣的:(joomla)