 |
|
code
<?
ini_set('display_errors', 0);
//////////////// CONFIG ////////////////////
define("dbserver","localhost"); // MySQL server
define("dbuser","root"); // MySQL Server Administrator Username
define("dbpass","pass"); // MySQL Server Administrator Password
define("savepath","pathtosave"); // Path to save SQL dumps
$wait = 3; // Days to save files before deletion
///////////////////////////////////////////
$dbconn = mysql_connect(dbserver,dbuser,dbpass);
$databases = mysql_list_dbs($dbconn);
while ($row = mysql_fetch_object($databases))
{
$indivualDB[] = $row->Database;
}
function mysqlbackup($host,$dbname, $uid, $pwd, $output, $structure_only)
{
if (strval($output)!="") $fptr=fopen($output,"w"); else $fptr=false;
$con=mysql_connect("localhost",$uid, $pwd);
$db=mysql_select_db($dbname,$con);
out($fptr, "create database $dbname;\n\n");
$res=mysql_list_tables($dbname);
$nt=mysql_num_rows($res);
for ($a=0;$a<$nt;$a++)
{
$row=mysql_fetch_row($res);
$tablename=$row[0];
$sql="create table $tablename\n(\n";
$res2=mysql_query("select * from $tablename",$con);
$nf=mysql_num_fields($res2);
$nr=mysql_num_rows($res2);
$fl="";
for ($b=0;$b<$nf;$b++)
{
$fn=mysql_field_name($res2,$b);
$ft=mysql_fieldtype($res2,$b);
$fs=mysql_field_len($res2,$b);
$ff=mysql_field_flags($res2,$b);
$sql.=" $fn ";
$is_numeric=false;
switch(strtolower($ft))
{
case "int":
$sql.="int";
$is_numeric=true;
break;
case "blob":
$sql.="text";
$is_numeric=false;
break;
case "real":
$sql.="real";
$is_numeric=true;
break;
case "string":
$sql.="char($fs)";
$is_numeric=false;
break;
case "unknown":
switch(intval($fs))
{
case 4:
$sql.="tinyint";
$is_numeric=true;
break;
default:
$sql.="int";
$is_numeric=true;
break;
}
break;
case "timestamp":
$sql.="timestamp";
$is_numeric=true;
break;
case "date":
$sql.="date";
$is_numeric=false;
break;
case "datetime":
$sql.="datetime";
$is_numeric=false;
break;
case "time":
$sql.="time";
$is_numeric=false;
break;
default:
$sql.=$ft;
$is_numeric=true;
break;
}
if (strpos($ff,"unsigned")!=false)
{
if ($ft!="timestamp") $sql.=" unsigned";
}
if (strpos($ff,"zerofill")!=false)
{
if ($ft!="timestamp") $sql.=" zerofill";
}
if (strpos($ff,"auto_increment")!=false) $sql.=" auto_increment";
if (strpos($ff,"not_null")!=false) $sql.=" not null";
if (strpos($ff,"primary_key")!=false) $sql.=" primary key";
//End of field flags
if ($b<$nf-1)
{
$sql.=",\n";
$fl.=$fn.", ";
}
else
{
$sql.="\n);\n\n";
$fl.=$fn;
}
$fna[$b]=$fn;
$ina[$b]=$is_numeric;
}
out($fptr,$sql);
if ($structure_only!=true)
{
for ($c=0;$c<$nr;$c++)
{
$sql="insert into $tablename ($fl) values (";
$row=mysql_fetch_row($res2);
for ($d=0;$d<$nf;$d++)
{
$data=strval($row[$d]);
if ($ina[$d]==true)
$sql.= intval($data);
else
$sql.="\"".mysql_escape_string($data)."\"";
if ($d<($nf-1)) $sql.=", ";
}
$sql.=");\n";
out($fptr,$sql);
}
out($fptr,"\n\n");
}
mysql_free_result($res2);
}
if ($fptr!=false) fclose($fptr);
return 0;
mysql_close($con);
}
function out($fptr,$s)
{
if ($fptr==false) echo("$s"); else fputs($fptr,$s);
}
$remove = date("M d, Y",mktime(0, 0, 0, date("m"),date("d")-$wait,date("Y")));
foreach ($indivualDB as $db)
{
unlink(savepath."/".$db."-".$remove.".sql");
echo "Database ".$db. " has been completed! \n";
mysqlbackup(dbserver,$db,dbuser,dbpass,savepath."/".$db."-".date("M d, Y").".sql",false);
}
mysql_close($dbconn);
?>
อยากรู้ว่า เราต้องการให้มัน สามารถเซฟไว้ใน เครื่อง ไคล์แอนได้ต้องใช้คำสั่งใด
Tag : - - - -
|
|
 |
 |
 |
 |
Date :
2 ก.พ. 2550 10:52:14 |
By :
japan |
View :
1681 |
Reply :
1 |
|
 |
 |
 |
 |
|
|
|
 |