Saturday, June 9, 2012

database back up php

Database back up php

Regular back up keeping of database is very important due to system crashes.This tutorial discuss with you how to take back ups in various format of files.
First we take the back up of your "my_database" into .sql file.
create bellow php file and run it you will get a  text containing your data base as a whole.

<?php
backup_tables('localhost','root','','my_database');



function backup_tables($host,$user,$pass,$name,$tables = '')
{
  
    $link = mysql_connect($host,$user,$pass);
    mysql_select_db($name,$link);
  

    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);
    }
  
    //cycle through
    foreach($tables as $table)
    {
        $result = mysql_query('SELECT * FROM '.$table);
        $num_fields = mysql_num_fields($result);
      
        $return.= 'DROP TABLE '.$table.';';
        $row2 = mysql_fetch_row(mysql_query('SHOW CREATE TABLE '.$table));
        $return.= "\n\n".$row2[1].";\n\n";
      
        for ($i = 0; $i < $num_fields; $i++)
        {
            while($row = mysql_fetch_row($result))
            {
                $return.= 'INSERT INTO '.$table.' VALUES(';
                for($j=0; $j<$num_fields; $j++)
                {
                    $row[$j] = addslashes($row[$j]);
                    $row[$j] = ereg_replace("\n","\\n",$row[$j]);
                    if (isset($row[$j])) { $return.= '"'.$row[$j].'"' ; } else { $return.= '""'; }
                    if ($j<($num_fields-1)) { $return.= ','; }
                }
                $return.= ");\n";
            }
        }
        $return.="\n\n\n";
    }
  
    //save file
    $handle = fopen('db-backup-'.time().'-'.(md5(implode(',',$tables))).'.sql','w+');
    fwrite($handle,$return);
    fclose($handle);
echo " back up Created";
}
?>

You will get .sql file in your web root where above file is created.

Next

No comments:

Post a Comment