How to import / restore MySql tables using PHP

If you want to import mysql tables on run time of php application then here I am going to show you how you can easily restore mysql tables using PHP. Generally you use to import mysql database from PHPMyAdmin, It is one of the easiest method to import mysql database but if You are looking solution for importing database during installation of php application like wordpress, joomla, drupal etc then below is the simple PHP method for importing mysql database without PHPMyAdmin.



Importing MySql Tables Using PHP

Use following php script to import / restore mysql database tables.

<?php
    // Set database credentials
   $hostname     = 'localhost'; // MySql Host
   $username = 'root'; // MySql Username
   $password = 'root'; // MySql Password
   $dbname     = 'dbname'; // MySql Database Name
   // File Path which need to import
   $filePath   = 'sql_files/mysql_db.sql';
 
    // Connect & select the database
   $con = new mysqli($hostname, $username, $password, $dbname);
 
    // Temporary variable, used to store current query
    $templine = '';
 
    // Read in entire file
    $lines = file($filePath);
 
    $error = '';
 
    // Loop through each line
    foreach ($lines as $line){
        // Skip it if it's a comment
        if(substr($line, 0, 2) == '--' || $line == ''){
            continue;
        }
 
        // Add this line to the current segment
        $templine .= $line;
 
        // If it has a semicolon at the end, it's the end of the query
        if (substr(trim($line), -1, 1) == ';'){
            // Perform the query
            if(!$con->query($templine)){
                $error .= 'Error performing query "<b>' . $templine . '</b>": ' . $db->error . '<br /><br />';
            }
 
            // Reset temp variable to empty
            $templine = '';
        }
    }
    $con->close();
    echo  !empty($error)?$error:"Import Success";
?>