Skip to content

All topics  /  MySQL

How To Backup MySQL Database Using PHP Example

MySQL ·

Hi guys,

Today i will explained How To Backup MySQL Database Using PHP. This example is so easy to use in php.

This example to i am export to the sql file in your same folder and store in your all database table field to store in sql file.

So let's start to the example.

index.php


<?php

 
    $dbHost = 'localhost';
    $dbUsername = 'root';
    $dbPassword = 'root';
    $dbName = 'login';
    $tables = '*';
    $db = new mysqli($dbHost, $dbUsername, $dbPassword, $dbName); 
    //get all of the tables
    if($tables == '*'){
        $tables = array();
        $result = $db->query("SHOW TABLES");
        while($row = $result->fetch_row()){
            $tables[] = $row[0];
        }
    }else{
        $tables = is_array($tables)?$tables:explode(',',$tables);
    }
    foreach($tables as $table){
        $result = $db->query("SELECT * FROM $table");
        $numColumns = $result->field_count;
        $return .= "DROP TABLE $table;";
        $result2 = $db->query("SHOW CREATE TABLE $table");
        $row2 = $result2->fetch_row();
        $return .= "\n\n".$row2[1].";\n\n";
        for($i = 0; $i < $numColumns; $i++){
            while($row = $result->fetch_row()){
                $return .= "INSERT INTO $table VALUES(";
                for($j=0; $j < $numColumns; $j++){
                    $row[$j] = addslashes($row[$j]);
                    $row[$j] = preg_replace("\n","\\n",$row[$j]);
                    if (isset($row[$j])){ 
                        $return .= '"'.$row[$j].'"' ; 
                    } else {
                        $return .= '""'; 
                    }
                    if ($j < ($numColumns-1)) {
                        $return.= ','; 
                    }
                }
                $return .= ");\n";
            }
        }
        $return .= "\n\n\n";
    }
    //save db file in same folder
    $handle = fopen('db-backup-'.time().'.sql','w+');
    fwrite($handle,$return);
    fclose($handle);
?>

Now you can check your own.