This is a free and open source PHP script to Backup MySQL Database. The script creates the backup of the MySQL tables in SQL format and saves it into a ZIP file on server. The SBMD script can also restore the MySQL tables in your database from the SQL backup stored in ZIP archive.
You can also Download, and Delete the ZIP archives with the SQL backup.

• To Download the script, click this link: Download SBMD (12 KB).

For questions or problems related to this script, you can post on Forum.


- Simple and easy to use interface to Backup and Restore MySQL tables.
- Supports both PDO and MySQLi for accessing MySQL databases in PHP.
- You can select the MySQL tables which to backup.
- The backup of the MySQL tables it is saved into a ZIP archive on server.
- You can Restore, Download, and Delete the ZIP file with backup from server.
- The script can be easily translated and used in other languages, without affecting the code.
- Easily to integrate into a CMS or other PHP project to add the backup MySQL database functionality.


- PHP 5.4+
- Modern Browser with JavaScript enabled (Mozilla-Firefox, Google-Chrome, Opera, Internet-Explorer 9+).


- Click on images:
SBMD - Connect SBMD - Tables list SBMD - Backup files list


  1. Download the archive with the script from the link above, and unzip it on your computer.
  2. Copy the "sbmd" folder on your server (with all its content).
  3. Set CHMOD 0755 (or 0777) permissions to the "backup/" folder on your server (it is used to store the ZIP files with the SQL backup).
  4. Access the "sbmd/bkmysql.php" file in your browser, with the address from server; for example: http://localhost/sbmd/bkmysql.php
  5. Add your connection data (MySQL server, Username, Password, Database name) to connect to your MySQL database. Then you can backup MySQL tables, and restore, download or delete the backup.

Other Specifications

• If you want to save the ZIP files in other directory on your server, modify the value of the $dir variable in the "bkmysql.php" file (line 5).

• If you want to use the script in other language, translate the texts from the lang_en.json file and save it in other "lang_...json" file, with the indice of the language, for example for Chinese save the texts in the "lang_ch.json". The texts in the ".json" file must be stored in valid JSON format. Then, change the value of the $lang variable in the "bkmysql.php" file (line 4) with the same indice ($lang ='ch';).

Advanced Usage

- If you want to use the backupmysql class into a CMS or other PHP project, include the backupmysql.class.php file in your project.
- The object instance of the backupmysql class requires two arguments: the indice of the language (used for the "lang_...json" file; default "en"), and the directory name where the backup files are saved (default "backup/").
include 'backupmysql.class.php';
$obj = new backupmysql('en', 'backup/');
- Then you can use these methods: - By default, the backupmysql class uses MySQLi to connect to database. If the MySQLi extension is not available, the class will try to use PDO. If you want to make the default mode to PDO, set the "pdo" value to the $conn_mod property, in the backupmysql.class.php file (line 114).

Example usage of backupmysql class

- Using backupmysql class to create backup of all the tables in mysql database.
//data for connecting to MySQL
$conn_data = ['host'=>'localhost', 'user'=>'user_name', 'pass'=>'password', 'dbname'=>'database_name'];

$lang ='en';  //indice of the "lang_...json" file with texts
$dir ='backup/';  //folder to store the ZIP archive with SQL backup

//set object of backupmysql class
include 'backupmysql.class.php';
$bk = new backupmysql($lang, $dir);

$bk->setMysql($conn_data);  //set connection
$tables = $bk->getTables();  //get array with all the tables in database

//if no error
if($bk->error === false){
  //if tables, creates the SQL backup of all the tables and saves it in ZIP archive (get succesful or error message)
  $bk_sql = (count($tables) >0) ? $bk->saveBkZip($tables) :'No tables in database';

  echo $bk_sql; 
else echo $bk->error; 

• This script is Free, and Open Source. You can use, modify and publish it freely.

Daily Test with Code Example

Which meta tag provides a short description of the page?
<meta content="..."> <meta description="..."> <meta http-equiv="...">
<meta name="description" content="70-160 characters that describes the content of the page" />
Which CSS property is used to stop the wrapping effect of the "float"?
clear text-align position
#some_id {
  clear: both;
Click on the method which gets an array with all the elements in the document that have a specified tag name.
getElementsByName() getElementById() getElementsByTagName()
var divs = document.getElementsByTagName("div");
var nr_divs = divs.length;
Indicate the PHP function which returns the number of elements in array.
is_[) count() strlen()
$arr =[7, 8, "abc", 10);
$nri = count($arr);
echo $nri;        // 4
SBMD - Simple Backup MySQL Database

Last accessed pages

  1. Puzzle Games (13308)
  2. Pool Master Secure (3171)
  3. Tom And Jerry Xtreme Adventure (418)
  4. Shape Fold Animals (120)
  5. Stunt Dirt Bike (1560)

Popular pages this month

  1. Qwop (3504)
  2. Flash Games - Free online Games (1602)
  3. Get Attribute (ID, Class, Name, Title, Src) with jQuery (1543)
  4. Courses Web: PHP-MySQL JavaScript Ajax HTML CSS Flash-AS3 (1431)
  5. Drag Racer V3 (1420)