المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : [مميز] عمل باك اب backup لقاعدة البيانات، مع ميزات متعددة



salima
11-01-2013, بتوقيت غرينيتش 03:46 PM
http://www.dzbatna.com/images/icons/iconrote.gif [ظ…ظ…ظٹط²] ط¹ظ…ظ„ ط¨ط§ظƒ ط§ط¨ backup ظ„ظ‚ط§ط¹ط¯ط© ط§ظ„ط¨ظٹط§ظ†ط§طھطŒ ظ…ط¹ ظ…ظٹط²ط§طھ ظ…طھط¹ط¯ط¯ط© (http://www.dzbatna.com/t1610385/)



السلام عليكم ورحمة الله وبركاته
كيف حالكم جميعا، ان شاء الله بخير؟


http://www.ashefaa.com/files/Photo/bluline.gif



المهم ندخل بموضوعنا وبدون مقدمات
اليوم اقدم لكم فنكشن
وظيفتها عمل باك اب لنسخة داتا بيس من نوع mysql
للامانة: الفنكشن ليست من برمجتي، ولكني عدلت عليها لاضيف لها امكانية تنزيل الداتا بيس على الجهاز، لانها هي بالاصل كانت تدعم فقط النسخ على ملف على السيرفر SERVER
وهذ المصدر
http://davidwalsh.name/backup-mysql-database-php


http://www.ashefaa.com/files/Photo/bluline.gif
المهم


نأتي الان لميزات الفنكشن
امكانية تحديد الجداول المراد نسخها، او نسخ الداتا بيس بكاملها.


امكانية نسخ الداتا بيس على مساحة الموقع.


امكانية نسخ الداتا بيس على جهازك.


http://www.ashefaa.com/files/Photo/bluline.gif


طريقة الاستخدام:


نستدعي الفنكشن كالتالي
رمز PHP:

<code style="white-space:nowrap"> <code> backup_tables('localhost','root','123456','aaa',0) ;
</code> </code>




الثلاث بارمترات الاولى هي معلومات الاتصال بالداتا بيس
البارمتر الرابع هو اسم الداتا بيس المراد نسخها
البارمتر الرابع هو تحديد اذا كان يتم النسخ على المساحة والا تنزيلها على الجهاز، في حال كان 1 يتم نسخها على الموقع&quot;، في حال كان اي شي غير الواحد راح يتم عمل داونلود للملف على الجهاز



http://www.ashefaa.com/files/Photo/bluline.gif
القسم الاخير والاهم
هو كود code الفنكشن
تفضلوا

رمز PHP:

<code style="white-space:nowrap"> <code> <?php </code> </code>

رمز PHP:

<code style="white-space:nowrap"> <code> &#91;CENTER&#93;/* 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&#91;&#93; = $row&#91;0&#93;;
}
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&#91;1&#93;.";\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&#91;$j&#93; = addslashes($row&#91;$j&#93;);
$row&#91;$j&#93; = ereg_replace("\n","\\n",$row&#91;$j&#93;);
if (isset($row&#91;$j&#93;)) { $return.= '"'.$row&#91;$j&#93;.'"' ; } else { $return.= '""'; }
if ($j<($num_fields-1)) { $return.= ','; }
}
$return.= ");\n";
}
}
$return.="\n\n\n";
}
if($mode==1)
{
$handle = fopen('db-backup-'.time().'-'.(md5(implode(',',$tables))).'.sql','w+');
fwrite($handle,$return);
fclose($handle);
}
else
{
header("Content-length: " . strlen($return));
header("Content-type: text/plain");
header("Content-Disposition: attachment; filename=db.sql");
echo $return;
}
}
?>&#91;/CENTER&#93;
</code> </code>





الى هنا نكون وصلنا الى نهاية موضوعنا

اي استفسار او تعليق مرحبا بكم


اخوكم مهند







ألعاب الأندرويد مجانا و حصريا (http://www.apotox.info/forum)




https://fbcdn-sphotos-d-a.akamaihd.net/hphotos-ak-ash4/482113_236967293114455_1193518507_n.png (http://www.dzbatna.com)
©المشاركات المنشورة تعبر عن وجهة نظر صاحبها فقط، ولا تُعبّر بأي شكل من الأشكال عن وجهة نظر إدارة المنتدى (http://www.dzbatna.com)©

استعمل مربع البحث في الاسفل لمزيد من المواضيع


سريع للبحث عن مواضيع في المنتدى