شوّيت: شبكة كرة قدم اجتماعية




العودة   سوالف سوفت > سوالف برمجة المواقع وتطويرها > PHP
التسجيل المدوّنات البحث مشاركات اليوم جعل الأقسام مقروءة

الرد على الموضوع
 
LinkBack أدوات الموضوع
عضو فعال
#1  
خذ نسخة احتياطية لموقعك بضغطة زر واحدة

بسم الله الرحمن الرحيم
وانا الف على بعض المواقع صادفنى كود لكيفية اخذ نسخة احتياطية لموقع من خلال كود بسيط جدا فحبيت اشارككم الفكرة

ملحوظة
النسخة المسحوبة من نوع 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

وفى حالة لاقدر الله انحذفت قاعدة بيانات يمكنك حينها استرجاعها بسهولة

وانتظرونى ان شاء الله بحاول اعد على الكود حتى يجعلها مضغوطة او لو فى حد حابب يسوى الكود ليجعلها مضغوطة يبقى جازاه الله كل خير






__________________
FaceBook Application Developer
تعلم برمجة سكريبت جلب المحتوى خطوة بخطوة
مشروعى داخل معرض الاتصالات
لمراسلتي إضغط هنا
سبحان الله وبحمده سبحان الله العظيم
edafa.info is offline   قديم 30-06-2009, 03:34 AM
الرد مع إقتباس
عضو نشيط
#2  

رائع بكل ما تحمل الكلمة من معنى


بس لو كان ممكنا تقسيم العملية إلى أجزاء لأنه لو تم تنفيدها عهلى قاعدة بيانات متوسطة أو ضخمة الحجم بالتأكيد راح يكون ضغط على الخادم

لي عودة إن شاء الله






azizsoft is offline   قديم 03-07-2009, 02:21 PM
الرد مع إقتباس
عضو فعال
#3  

إقتباس:
المشاركة الأصلية بواسطة azizsoft مشاهدة مشاركة
رائع بكل ما تحمل الكلمة من معنى


بس لو كان ممكنا تقسيم العملية إلى أجزاء لأنه لو تم تنفيدها عهلى قاعدة بيانات متوسطة أو ضخمة الحجم بالتأكيد راح يكون ضغط على الخادم

لي عودة إن شاء الله
بانتظارك ,, بالتوفيق اخوى






__________________
FaceBook Application Developer
تعلم برمجة سكريبت جلب المحتوى خطوة بخطوة
مشروعى داخل معرض الاتصالات
لمراسلتي إضغط هنا
سبحان الله وبحمده سبحان الله العظيم
edafa.info is offline   قديم 03-07-2009, 02:26 PM
الرد مع إقتباس
عضو مميز
#4  

الكود غير كامل ولن يأخذ القاعدة بشكل صحيح

هذه كلاس كاملة وصحيحة بإذن الله

كود PHP:
<?php
    
//MySQL connection parameters
    
    
$dbhost="localhost";
    
$dbuser="";
    
$dbpsw="";
    
$dbname="";
    
    
//Connects to mysql server
    
$connessione = @mysql_connect($dbhost,$dbuser,$dbpsw);

       
    class 
MySQLDump 
    
{
       function 
MYSQLDump($db null$filepath 'dump.sql'$compress false$hexValue false){
              
$this->compress $compress;
              if ( !
$this->setOutputFile($filepath) )
                  return 
false;
              return 
$this->setDatabase($db);
          }
          function 
getDatabaseStructure()
        {
                
$records = @mysql_query('SHOW TABLES');
                if ( @
mysql_num_rows($records) == )
                    return 
false;
                while ( 
$record = @mysql_fetch_row($records) ) {
                    
$structure .= $this->getTableStructure($record[0]);
                }
                return 
true;
        }
          function 
getTableStructure($table)
          {
                              if ( !
$this->setDatabase($this->database) )
                                  return 
false;
                              
// Structure Header
                              
$structure "-- \n";
                              
$structure .= "-- Table structure for table `{$table}` \n";
                              
$structure .= "-- \n\n";
                              
// Dump Structure
                              
$structure .= 'DROP TABLE IF EXISTS `'.$table.'`;'."\n";
                              
$structure .= "CREATE TABLE `".$table."` (\n";
                              
$records = @mysql_query('SHOW FIELDS FROM `'.$table.'`');
                              if ( @
mysql_num_rows($records) == )
                                  return 
false;
                              while ( 
$record mysql_fetch_assoc($records) ) {
                                  
$structure .= '`'.$record['Field'].'` '.$record['Type'];
                                  if ( !empty(
$record['Default']) )
                                      
$structure .= ' DEFAULT \''.$record['Default'].'\'';
                                  if ( @
strcmp($record['Null'],'YES') != )
                                      
$structure .= ' NOT NULL';
                                  if ( !empty(
$record['Extra']) )
                                      
$structure .= ' '.$record['Extra'];
                                  
$structure .= ",\n";
                              }
                              
$structure = @ereg_replace(",\n$"null$structure);
                      
                              
// Save all Column Indexes
                              
$structure .= $this->getSqlKeysTable($table);
                              
$structure .= "\n)";
                      
                              
//Save table engine
                              
$records = @mysql_query("SHOW TABLE STATUS LIKE '".$table."'");
                              echo 
$query;
                              if ( 
$record = @mysql_fetch_assoc($records) ) {
                                  if ( !empty(
$record['Engine']) )
                                      
$structure .= ' ENGINE='.$record['Engine'];
                                  if ( !empty(
$record['Auto_increment']) )
                                      
$structure .= ' AUTO_INCREMENT='.$record['Auto_increment'];
                              }
                      
                              
$structure .= ";\n\n-- --------------------------------------------------------\n\n";
                              
$this->saveToFile($this->file,$structure);
                          }
                              function 
saveToFile($file$data) {
        if ( 
$this->compress )
            @
gzwrite($file$data);
        else
            @
fwrite($file$data);
        
$this->isWritten true;
    }
              function 
setDatabase($db){
        
$this->database $db;
        if ( !@
mysql_select_db($this->database) )
            return 
false;
        return 
true;
  }
  function 
setOutputFile($filepath){
        if ( 
$this->isWritten )
            return 
false;
        
$this->filename $filepath;
        
$this->file $this->openFile($this->filename);
        return 
$this->file;
  }
  function 
openFile($filename) {
        
$file false;
        if ( 
$this->compress )
            
$file = @gzopen($filename"w9");
        else
            
$file = @fopen($filename"w");
        return 
$file;
    }
    function 
getSqlKeysTable ($table) {
        
$primary "";
        unset(
$unique);
        unset(
$index);
        unset(
$fulltext);
        
$results mysql_query("SHOW KEYS FROM `{$table}`");
        if ( @
mysql_num_rows($results) == )
            return 
false;
        while(
$row mysql_fetch_object($results)) {
            if ((
$row->Key_name == 'PRIMARY') AND ($row->Index_type == 'BTREE')) {
                if ( 
$primary == "" )
                    
$primary "  PRIMARY KEY  (`{$row->Column_name}`";
                else
                    
$primary .= ", `{$row->Column_name}`";
            }
            if ((
$row->Key_name != 'PRIMARY') AND ($row->Non_unique == '0') AND ($row->Index_type == 'BTREE')) {
                if ( (!
is_array($unique)) OR ($unique[$row->Key_name]=="") )
                    
$unique[$row->Key_name] = "  UNIQUE KEY `{$row->Key_name}` (`{$row->Column_name}`";
                else
                    
$unique[$row->Key_name] .= ", `{$row->Column_name}`";
            }
            if ((
$row->Key_name != 'PRIMARY') AND ($row->Non_unique == '1') AND ($row->Index_type == 'BTREE')) {
                if ( (!
is_array($index)) OR ($index[$row->Key_name]=="") )
                    
$index[$row->Key_name] = "  KEY `{$row->Key_name}` (`{$row->Column_name}`";
                else
                    
$index[$row->Key_name] .= ", `{$row->Column_name}`";
            }
            if ((
$row->Key_name != 'PRIMARY') AND ($row->Non_unique == '1') AND ($row->Index_type == 'FULLTEXT')) {
                if ( (!
is_array($fulltext)) OR ($fulltext[$row->Key_name]=="") )
                    
$fulltext[$row->Key_name] = "  FULLTEXT `{$row->Key_name}` (`{$row->Column_name}`";
                else
                    
$fulltext[$row->Key_name] .= ", `{$row->Column_name}`";
            }
        }
        
$sqlKeyStatement '';
        
// generate primary, unique, key and fulltext
        
if ( $primary != "" ) {
            
$sqlKeyStatement .= ",\n";
            
$primary .= ")";
            
$sqlKeyStatement .= $primary;
        }
        if (
is_array($unique)) {
            foreach (
$unique as $keyName => $keyDef) {
                
$sqlKeyStatement .= ",\n";
                
$keyDef .= ")";
                
$sqlKeyStatement .= $keyDef;

            }
        }
        if (
is_array($index)) {
            foreach (
$index as $keyName => $keyDef) {
                
$sqlKeyStatement .= ",\n";
                
$keyDef .= ")";
                
$sqlKeyStatement .= $keyDef;
            }
        }
        if (
is_array($fulltext)) {
            foreach (
$fulltext as $keyName => $keyDef) {
                
$sqlKeyStatement .= ",\n";
                
$keyDef .= ")";
                
$sqlKeyStatement .= $keyDef;
            }
        }
        return 
$sqlKeyStatement;
    }


            

    }
    

//Creates a new instance of MySQLDump: it exports a compressed and base-16 file
$dumper = new MySQLDump($dbname,'filename.sql',false,false);
$dumper->getDatabaseStructure();
?>
من موقع php classes






__________________
السيف أصدق أنباء من الكتب
محب الله ورسوله is online now   قديم 03-07-2009, 09:02 PM
الرد مع إقتباس
عضو فعال
#5  

محب الله ورسوله
بصراحة انا جربت الكود وجربت القاعدة وظبت معى
على كل كيف استخدم الكلاس بالاعلى
المصدر






__________________
FaceBook Application Developer
تعلم برمجة سكريبت جلب المحتوى خطوة بخطوة
مشروعى داخل معرض الاتصالات
لمراسلتي إضغط هنا
سبحان الله وبحمده سبحان الله العظيم
edafa.info is offline   قديم 04-07-2009, 02:18 AM
الرد مع إقتباس
عضو مميز
#6  

إقتباس:
المشاركة الأصلية بواسطة edafa.info مشاهدة مشاركة
محب الله ورسوله
بصراحة انا جربت الكود وجربت القاعدة وظبت معى
على كل كيف استخدم الكلاس بالاعلى
المصدر
لو لديك fulltext بين حقول او index إلخ
لن يتم أخذه مع القاعدة
لهذا قلت لك الكود ناقص عمل الستراكتشر بشكل كامل






__________________
السيف أصدق أنباء من الكتب
محب الله ورسوله is online now   قديم 04-07-2009, 07:07 AM
الرد مع إقتباس
عضو فعال
#7  

جزاك الله كل خير اخوى محب الله ورسوله






__________________
FaceBook Application Developer
تعلم برمجة سكريبت جلب المحتوى خطوة بخطوة
مشروعى داخل معرض الاتصالات
لمراسلتي إضغط هنا
سبحان الله وبحمده سبحان الله العظيم
edafa.info is offline   قديم 22-09-2011, 12:25 AM
الرد مع إقتباس
الرد على الموضوع


 

أدوات الموضوع

قوانين المشاركات
لا يمكنك كتابة مواضيع جديدة
لا يمكنك إضافة ردود
لا يمكنك إرسال مرفقات
لا يمكنك تعديل مشاركاتك

كود vB متاح
كود [IMG] متاح
كود HTML غير متاح
Trackbacks are متاح
Pingbacks are متاح
Refbacks are متاح


المواضيع المشابهه
الموضوع كاتب الموضوع القسم الردود آخر مشاركة
نسخة احتياطية لموقعك اسبوعياً ( خارجي ) فكرة ديزاين عروض البيع وطلبات الشراء في البرمجة والتصميم وبناء المحتوى وتبادل الاعلانات 0 06-05-2009 04:54 AM
انشر موقعك باشهر محركات البحث بضغطة واحدة mohandsyasser إنشاء وصيانة المواقع للمبتدئين 12 25-06-2008 08:47 PM
طريقة لحذف المواضيع المرسلة بضغطة زر واحدة journaliste32 الويب والويب 2.0 والـ Semantic Web 3 18-06-2008 09:07 PM
كيف استطيع عمل نسخة احتياطية من جميل قواعد البينات باستخدام الامر mysqldump مرة واحدة download الإصلاح والصيانة 1 16-02-2007 06:25 PM
بصراحة : كل ما تريدة بضغطة واحدة !! eltawoos.com الويب والويب 2.0 والـ Semantic Web 8 06-03-2006 03:26 PM


جميع الأوقات بتوقيت غرينتش +3. الوقت الآن هو 05:51 PM.