Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
PHP Scripts to Backup Mysql Database
#1
Hello, guys.

Today I am going to introduce a PHP Program which helps you to take Backup of your Mysql Database using PHP Program. All you want to do, just specify the name and password of the database. Also, the table which you want to take backup. Copy the below code to a php page and take backup.

PHP Code:
<?php
    
//ENTER THE RELEVANT INFO BELOW
 
   $mysqlUserName      "Database Username";
 
   $mysqlPassword      "Password Here";
 
   $mysqlHostName      "Hostname Here";
 
   $DbName             "Database Name Here";
 
   $backup_name        "mybackup.sql";
 
   $tables             = array("asset_branch""asset_category""asset_products""asset_user""login""message""replace_app");

 
  //or add 5th parameter(array) of specific tables:    array("mytable1","mytable2","mytable3") for multiple tables

 
   Export_Database($mysqlHostName,$mysqlUserName,$mysqlPassword,$DbName $tables=false$backup_name=false );

 
   function Export_Database($host,$user,$pass,$name $tables=false$backup_name=false )
 
   {
 
       $mysqli = new mysqli($host,$user,$pass,$name);
 
       $mysqli->select_db($name);
 
       $mysqli->query("SET NAMES 'utf8'");

 
       $queryTables    $mysqli->query('SHOW TABLES');
 
       while($row $queryTables->fetch_row())
 
       {
 
           $target_tables[] = $row[0];
 
       }
 
       if($tables !== false)
 
       {
 
           $target_tables array_intersect$target_tables$tables);
 
       }
 
       foreach($target_tables as $table)
 
       {
 
           $result           $mysqli->query('SELECT * FROM '.$table);
 
           $fields_amount    $result->field_count;
 
           $rows_num=$mysqli->affected_rows;
 
           $res              $mysqli->query('SHOW CREATE TABLE '.$table);
 
           $TableMLine       $res->fetch_row();
 
           $content        = (!isset($content) ?  '' $content) . "\n\n".$TableMLine[1].";\n\n";

 
           for ($i 0$st_counter 0$i $fields_amount  $i++, $st_counter=0)
 
           {
 
               while($row $result->fetch_row())
 
               //when started (and every after 100 command cycle):
 
                   if ($st_counter%100 == || $st_counter == )
 
                   {
 
                           $content .= "\nINSERT INTO ".$table." VALUES";
 
                   }
 
                   $content .= "\n(";
 
                   for($j=0$j<$fields_amount$j++)
 
                   {
 
                       $row[$j] = str_replace("\n","\\n"addslashes($row[$j]) );
 
                       if (isset($row[$j]))
 
                       {
 
                           $content .= '"'.$row[$j].'"' ;
 
                       }
 
                       else
                        
{
 
                           $content .= '""';
 
                       }
 
                       if ($j<($fields_amount-1))
 
                       {
 
                               $content.= ',';
 
                       }
 
                   }
 
                   $content .=")";
 
                   //every after 100 command cycle [or at last line] ....p.s. but should be inserted 1 cycle eariler
 
                   if ( (($st_counter+1)%100==&& $st_counter!=0) || $st_counter+1==$rows_num)
 
                   {
 
                       $content .= ";";
 
                   }
 
                   else
                    
{
 
                       $content .= ",";
 
                   }
 
                   $st_counter=$st_counter+1;
 
               }
 
           $content .="\n\n\n";
 
       }
 
       //$backup_name = $backup_name ? $backup_name : $name."___(".date('H-i-s')."_".date('d-m-Y').")__rand".rand(1,11111111).".sql";
 
       $date date("Y-m-d");
 
       $backup_name $backup_name $backup_name $name.".$date.sql";
 
       header('Content-Type: application/octet-stream');
 
       header("Content-Transfer-Encoding: Binary");
 
       header("Content-disposition: attachment; filename=\"".$backup_name."\"");
 
       echo $content; exit;
 
   }
?>

Thanks
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)