بسم الله الرحمن الرحيم
وانا الف على بعض المواقع صادفنى كود لكيفية اخذ نسخة احتياطية لموقع من خلال كود بسيط جدا فحبيت اشارككم الفكرة
ملحوظة
النسخة المسحوبة من نوع INSERT
يعنى بتنشئ قاعدة فارغه وتضعها بداخلها مباشرة (بدلا من القاعدة المعطوبة لاقدر الله)
يجب ان يكون المجلد الذى يوضع به الملف لدية التصريح 777
الكود
كود PHP:
backup_tables('localhost','username','password','blog');
/* 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);
}
//cycle through
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));
$return.= "\n\n".$row2[1].";\n\n";
for ($i = 0; $i < $num_fields; $i++)
{
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
$handle = fopen('db-backup-'.time().'-'.(md5(implode(',',$tables))).'.sql','w+');
fwrite($handle,$return);
fclose($handle);
}
لاتنس ان تضعه بين وسمى php
وفى حالة لاقدر الله انحذفت قاعدة بيانات يمكنك حينها استرجاعها بسهولة
وانتظرونى ان شاء الله بحاول اعد على الكود حتى يجعلها مضغوطة او لو فى حد حابب يسوى الكود ليجعلها مضغوطة يبقى جازاه الله كل خير