كود:
////////////////////////////////////////////////////////////////////////////////
function SaveToFile ($Data,$fName)
{
$fp= fopen($fName,"a+");
fputs($fp, $Data);
fclose($fp);
}
////////////////////////////////////////////////////////////////////////////////
//-> This script will generate a DUMP file (Clone Database)
//-> Cloning@Start
$sql_statment = "SHOW DATABASES";
if(!($result = $db->sql_query($sql_statment)))
{
MessageDie(GENERAL_ERROR, "", "Could not query Gallery Table", __LINE__, __FILE__, $sql_statment);
}
$Dbs = array();
while($row = $db->sql_fetchrow($result))
{
$Dbs[] = $row[0];
}
$db->sql_freeresult($result);
for ($i=0;$i<count($Dbs);$i++)
{
if (strpos($Dbs[$i],"prod_") === 0)
{
$NewDB = str_replace("prod","test",$Dbs[$i]);
SaveToFile("DROP DATABASE IF EXISTS $NewDB;\n",$fName);
SaveToFile("CREATE DATABASE IF NOT EXISTS $NewDB;\n",$fName);
SaveToFile("USE $NewDB;\n",$fName);
////////////////////////////////////////////////////////////////////////
$sql_statment = "SHOW TABLES FROM $Dbs[$i]";
if(!($result = $db->sql_query($sql_statment)))
{
MessageDie(GENERAL_ERROR, "", "Could not query Gallery Table", __LINE__, __FILE__, $sql_statment);
}
$Fileds = array();
while($row = $db->sql_fetchrow($result))
{
$Fileds[] = $row[0];
}
$db->sql_freeresult($result);
for ($r=0;$r<count($Fileds);$r++)
{
$sql_statment = "SHOW FIELDS FROM $Dbs[$i].$Fileds[$r]";
if(!($result = $db->sql_query($sql_statment)))
{
MessageDie(GENERAL_ERROR, "", "Could not query Gallery Table", __LINE__, __FILE__, $sql_statment);
}
$fld1 = array();
$fld2 = array();
$fld3 = array();
$fld4 = array();
$fld5 = array();
$fld6 = array();
while($row = $db->sql_fetchrow($result))
{
$fld1[] = $row[0];
$fld2[] = $row[1];
$fld3[] = $row[2];
$fld4[] = $row[3];
$fld5[] = $row[4];
$fld6[] = $row[5];
}
$db->sql_freeresult($result);
////////////////////////////////////////////////////////////////////////////
SaveToFile("DROP TABLE IF EXISTS $Fileds[$r];\n",$fName);
SaveToFile("CREATE TABLE IF NOT EXISTS $Fileds[$r] (\n",$fName);
for ($j=0;$j<count($fld1);$j++)
{
$fld3_r = ($fld3[$j] == "YES") ? "" : str_replace("NO","NOT NULL",$fld3[$j]);
$fld3_rr = ($fld3[$j] == "YES") ? "" : str_replace("NO","NOT NULL",$fld3[$j])." DEFAULT '$fld5[$j]'";
($fld4[$j] == "PRI") ?
SaveToFile(" $fld1[$j] $fld2[$j] $fld3_r ".strtoupper($fld6[$j]).",\n",$fName) :
SaveToFile(" $fld1[$j] $fld2[$j] $fld3_rr ".strtoupper($fld6[$j]).",\n",$fName);
}
for ($m=0;$m<count($fld1);$m++)
{
($fld4[$m] == "PRI") ?
SaveToFile(str_replace("PRI","PRIMARY KEY",$fld4[$m])."($fld1[$m])",$fName) :
SaveToFile("",$fName);
}
for ($n=0;$n<count($fld1);$n++)
{
($fld4[$n] == "MUL") ?
SaveToFile(",\n".str_replace("MUL","KEY",$fld4[$n])."($fld1[$n])",$fName) :
SaveToFile("",$fName);
}
SaveToFile("\n);\n\n",$fName);
SaveToFile("INSERT INTO $Fileds[$r] (SELECT * FROM $Dbs[$i].$Fileds[$r]);\n\n",$fName);
}
}
}
//-> Cloning@End
////////////////////////////////////////////////////////////////////////////////
أنا بحتاج هيدا السكريبت كرمال أعمل نسخة طبق الأصل عن القديم .. مثال على ذالك