• Export SQL in PHP

    Steps:
    1. Create a database with name test and create mysql connection.
    2. Create a function backup_tables(‘localhost’, ’root’, ’’, ’test’).
    3. This function first select table and then generate a create table query then apply insert query which will be store in $return variable.
    4. Then write that all return content on a file and export it.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    
    <!--?php 
     
    backup_tables('localhost','root','','test);
     
    /* backup the db OR just a table */
    function backup_tables($host,$user,$pass,$name,$tables = '*')
    {
     
    	$link = mysql_connect($host,$user,$pass);
    	mysql_select_db($name,$link);
     
    	//get all of the tables
    	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);
    	}
     
    	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)); //Create table query
    		$return.= "\n\n".$row2[1].";\n\n";
     
    		for ($i = 0; $i < $num_fields; $i++) //Insert queries
    		{
    			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
                $filename='db-backup-'.time().'-'.(md5(implode(',',$tables)));
    	$handle = fopen(,'w+');
    	fwrite($handle,$return);
    	fclose($handle);
    	header("Content-type: application/sql");
    	header("Content-disposition: filename=".$filename.".sql");
    	print $return;
    	die;
    }
     
    ?-->

Comments on this post

Leave a Reply

  • Security Code :


    × 8 = sixty four