ورود

View Full Version : اسكريپت Dump گرفتن از Mysql



Army.Hidden
یک شنبه 29 فروردین 1389, 00:11 صبح
سلام دوستان
چند وقت پيش يه اسكريپتي براي دريافت نسخه پشتيبان نوشتم گفتم بزارم براي كاربراني كه مي خوان و اگر كسي تونست كامل ترش كه ما هم استفاده كنيم از نسخه ويرايش شده اش :چشمک:


<?PHP
//------------ Accunt Setting ------------
$db_location = "localhost";
$db_username = "root"; //
$db_password = ""; //
$db_name = "";//
$tablename = "all"; // ---> all
/*
IF Tabale Name($tablename) == Empty : Dump All Table
*/
//--------------------------------------
set_time_limit(0);
@ $db = new mysqli ($db_location,$db_username,$db_password,$db_name);
if (mysqli_connect_errno())
{
exit('Error To Cennect To DB');
}
/////////////////////////////
$time=date(" M j, Y ").' at '.date(" G:i A ");
///////////////////////////////////////
$query="SELECT @@version;";
$result = $db->query($query);
$num_result = $result->num_rows;
$row = $result->fetch_assoc();
$version=$row['@@version'];
///////////////////////////////////////
$query="SELECT user();";
$result = $db->query($query);
$num_result = $result->num_rows;
$row = $result->fetch_assoc();
$userdb=$row['user()'];
///////////////////////////////////////

$Backup="
-- phpMyAdmin SQL Dump
-- version 2.9.1.1
-- http://www.phpmyadmin.net
-- http://www.irangrp.Com
--
-- Host: $db_location
-- Generation Time: $time
-- Server version: `$version`
-- Server User: `$userdb`
-- PHP Version: 5.2.0
--
-- Database: `$db_name`
--
-- --------------------------------------------------------
";
$query = "SHOW TABLES ;";
$result = $db->query($query);
$num_result = $result->num_rows;
for ($i=0 ; $i < $num_result ; $i++)
{
$row = $result->fetch_assoc();
IF($tablename != 'all'){
$table=$tablename;$num_result=1;

}else{
$table=$row['Tables_in_'.$db_name];
}
$query_op = "OPTIMIZE TABLE $table;";
$result_op = $db->query($query_op);
$Backup.="
--
-- Table structure for table `$table`
--
";
$query1 = "SHOW CREATE TABLE $table";
$result1 = $db->query($query1);
$num_result1 = $result1->num_rows;
for ($i1=0 ; $i1 < $num_result1 ; $i1++)
{
$row1 = $result1->fetch_assoc();
$Backup.=$row1['Create Table'].";\n\n";

$query2 = "SELECT * FROM $table";
$result2 = $db->query($query2);
$num_result2 = $result2->num_rows;
IF ($num_result2){
$Backup.="
--
-- Dumping data for table `$table`
--
";
$Backup.="INSERT INTO `$table` VALUES \n";

for ($i2=1 ; $i2 <= $num_result2 ; $i2++)
{
$row2 = $result2->fetch_assoc();
$Backup.="(";
$query3 = "SHOW COLUMNS FROM $table";
$result3 = $db->query($query3);
$num_result3 = $result3->num_rows;
for ($i3=0 ; $i3 < $num_result3 ; $i3++)
{
$row3 = $result3->fetch_assoc();
$Backup.="'".$row2[$row3['Field']]."',";
}
IF($i2==$num_result2){
$Backup.=");\n";
}else{
$Backup.="),\n";
}

}
}
}
}
$Backup=str_replace(',)',')',$Backup);
$H = fopen("$db_name.sql","w");
fwrite($H,$Backup);
fclose($H);
?>

البته اين اسكريپت اطلاعات رو روي يك فايل SQL روي سرور ذخيره ميكنه ، با كمي كد نويسي ميشه كاري كرد اطلاعات دانلود بشه