Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- error_reporting(E_ALL);
- ini_set('display_errors', true);
- ini_set('error_reporting', E_ALL);
- $dbhost = 'mysql60.1gb.ru:3036';
- $dbuser = 'gb_x_mirvody';
- $dbpass = 'd7b1a7d5';
- $dbname = 'gb_x_mirvody';
- // Report all errors
- //error_reporting(E_ALL);
- /**
- * Define database parameters here
- */
- define("DB_USER", 'gb_x_mirvody');
- define("DB_PASSWORD", 'd7b1a7d5');
- define("DB_NAME", 'gb_x_mirvody');
- define("DB_HOST", 'mysql60.1gb.ru');
- define("OUTPUT_DIR", 'cache');
- define("TABLES", '*');
- /**
- * Instantiate Backup_Database and perform backup
- */
- $backupDatabase = new Backup_Database(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
- $status = $backupDatabase->backupTables(TABLES, OUTPUT_DIR) ? 'OK' : 'KO';
- echo "<br /><br /><br />Backup result: ".$status;
- /**
- * The Backup_Database class
- */
- class Backup_Database {
- /**
- * Host where database is located
- */
- var $host = '';
- /**
- * Username used to connect to database
- */
- var $username = '';
- /**
- * Password used to connect to database
- */
- var $passwd = '';
- /**
- * Database to backup
- */
- var $dbName = '';
- /**
- * Database charset
- */
- var $charset = '';
- /**
- * Constructor initializes database
- */
- function Backup_Database($host, $username, $passwd, $dbName, $charset = 'utf8')
- {
- $this->host = $host;
- $this->username = $username;
- $this->passwd = $passwd;
- $this->dbName = $dbName;
- $this->charset = $charset;
- $this->initializeDatabase();
- }
- protected function initializeDatabase()
- {
- $conn = mysql_connect($this->host, $this->username, $this->passwd);
- if (!$conn) {
- die('ÐÑибка ÑоединениÑ: ' . mysql_error());
- }else{
- //die('good');
- }
- mysql_select_db($this->dbName, $conn);
- if (! mysql_set_charset ($this->charset, $conn))
- {
- mysql_query('SET NAMES '.$this->charset);
- }
- }
- /**
- * Backup the whole database or just some tables
- * Use '*' for whole database or 'table1 table2 table3...'
- * @param string $tables
- */
- public function backupTables($tables = '*', $outputDir = '.')
- {
- try
- {
- /**
- * Tables to export
- */
- if($tables == '*')
- {
- $tables = array();
- $result = mysql_query('SHOW TABLES');
- while($row = mysql_fetch_row($result))
- {
- $tables[] = $row[0];
- }
- }
- else
- {
- $tables = is_array($tables) ? $tables : explode(',',$tables);
- }
- $sql = 'CREATE DATABASE IF NOT EXISTS '.$this->dbName.";\n\n";
- $sql .= 'USE '.$this->dbName.";\n\n";
- /**
- * Iterate tables
- */
- foreach($tables as $table)
- {
- echo "Backing up ".$table." table...";
- $result = mysql_query('SELECT * FROM '.$table);
- $numFields = mysql_num_fields($result);
- $sql .= 'DROP TABLE IF EXISTS '.$table.';';
- $row2 = mysql_fetch_row(mysql_query('SHOW CREATE TABLE '.$table));
- $sql.= "\n\n".$row2[1].";\n\n";
- for ($i = 0; $i < $numFields; $i++)
- {
- while($row = mysql_fetch_row($result))
- {
- $sql .= 'INSERT INTO '.$table.' VALUES(';
- for($j=0; $j<$numFields; $j++)
- {
- $row[$j] = addslashes($row[$j]);
- $row[$j] = str_replace("\n","\\n",$row[$j]);
- if (isset($row[$j]))
- {
- $sql .= '"'.$row[$j].'"' ;
- }
- else
- {
- $sql.= '""';
- }
- if ($j < ($numFields-1))
- {
- $sql .= ',';
- }
- }
- $sql.= ");\n";
- }
- }
- $sql.="\n\n\n";
- echo " OK" . "<br />";
- }
- }
- catch (Exception $e)
- {
- var_dump($e->getMessage());
- return false;
- }
- return $this->saveFile($sql, $outputDir);
- }
- /**
- * Save SQL to file
- * @param string $sql
- */
- protected function saveFile(&$sql, $outputDir = '.')
- {
- if (!$sql) return false;
- try
- {
- $handle = fopen($outputDir.'/db-backup-'.$this->dbName.'-'.date("Ymd-His", time()).'.sql','w+');
- fwrite($handle, $sql);
- fclose($handle);
- }
- catch (Exception $e)
- {
- var_dump($e->getMessage());
- return false;
- }
- return true;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement