![]() |
|
#1
|
|||
|
|||
![]() مع هذه الكلاس الرائعة ستتمكن بكل سهولة ويسر ان تقوم بأخذ نسخة احتياطية لاى قاعدة بيانات ويمكنك اضافة هذه الخاصية فى لوحة تحكم اسكربتك حتى يقوم المستخدم بأخذ نسخة احتياطية لقاعدة البياانات الاسكربت الكود: view source print? 001.<?php 002./* 003.MySQL database backup class, version 1.0.0 004.Written by Vagharshak Tozalakyan <vagh#armdex.com> 005.Released under GNU Public license 006.*/ 007.define('MSB_VERSION', '1.0.0'); 008.define('MSB_NL', "\r\n"); 009.define('MSB_STRING', 0); 010.define('MSB_DOWNLOAD', 1); 011.define('MSB_SAVE', 2); 012.class MySQL_Backup 013.{ 014.var $server = 'localhost'; 015.var $port = 3306; 016.var $username = 'root'; 017.var $password = ''; 018.var $database = ''; 019.var $link_id = -1; 020.var $connected = false; 021.var $tables = array(); 022.var $drop_tables = true; 023.var $struct_only = false; 024.var $comments = true; 025.var $backup_dir = ''; 026.var $fname_format = 'd_m_y__H_i_s'; 027.var $error = ''; 028.function Execute($task = MSB_STRING, $fname = '', $compress = false) 029.{ 030.if (!($sql = $this->_Retrieve())) 031.{ 032.return false; 033.} 034.if ($task == MSB_SAVE) 035.{ 036.if (empty($fname)) 037.{ 038.$fname = $this->backup_dir; 039.$fname .= date($this->fname_format); 040.$fname .= ($compress ? '.sql.gz' : '.sql'); 041.} 042.return $this->_SaveToFile($fname, $sql, $compress); 043.} 044.elseif ($task == MSB_DOWNLOAD) 045.{ 046.if (empty($fname)) 047.{ 048.$fname = date($this->fname_format); 049.$fname .= ($compress ? '.sql.gz' : '.sql'); 050.} 051.return $this->_DownloadFile($fname, $sql, $compress); 052.} 053.else 054.{ 055.return $sql; 056.} 057.} 058.function _Connect() 059.{ 060.$value = false; 061.if (!$this->connected) 062.{ 063.$host = $this->server . ':' . $this->port; 064.$this->link_id = mysql_connect($host, $this->username, $this->password); 065.} 066.if ($this->link_id) 067.{ 068.if (empty($this->database)) 069.{ 070.$value = true; 071.} 072.elseif ($this->link_id !== -1) 073.{ 074.$value = mysql_select_db($this->database, $this->link_id); 075.} 076.else 077.{ 078.$value = mysql_select_db($this->database); 079.} 080.} 081.if (!$value) 082.{ 083.$this->error = mysql_error(); 084.} 085.return $value; 086.} 087.function _Query($sql) 088.{ 089.if ($this->link_id !== -1) 090.{ 091.$result = mysql_query($sql, $this->link_id); 092.} 093.else 094.{ 095.$result = mysql_query($sql); 096.} 097.if (!$result) 098.{ 099.$this->error = mysql_error(); 100.} 101.return $result; 102.} 103.function _GetTables() 104.{ 105.$value = array(); 106.if (!($result = $this->_Query('SHOW TABLES'))) 107.{ 108.return false; 109.} 110.while ($row = mysql_fetch_row($result)) 111.{ 112.if (empty($this->tables) || in_array($row[0], $this->tables)) 113.{ 114.$value[] = $row[0]; 115.} 116.} 117.if (!sizeof($value)) 118.{ 119.$this->error = 'No tables found in database.'; 120.return false; 121.} 122.return $value; 123.} 124.function _DumpTable($table) 125.{ 126.$value = ''; 127.$this->_Query('LOCK TABLES ' . $table . ' WRITE'); 128.if ($this->comments) 129.{ 130.$value .= '#' . MSB_NL; 131.$value .= '# Table structure for table `' . $table . '`' . MSB_NL; 132.$value .= '#' . MSB_NL . MSB_NL; 133.} 134.if ($this->drop_tables) 135.{ 136.$value .= 'DROP TABLE IF EXISTS `' . $table . '`;' . MSB_NL; 137.} 138.if (!($result = $this->_Query('SHOW CREATE TABLE ' . $table))) 139.{ 140.return false; 141.} 142.$row = mysql_fetch_assoc($result); 143.$value .= str_replace("\n", MSB_NL, $row['Create Table']) . ';'; 144.$value .= MSB_NL . MSB_NL; 145.if (!$this->struct_only) 146.{ 147.if ($this->comments) 148.{ 149.$value .= '#' . MSB_NL; 150.$value .= '# Dumping data for table `' . $table . '`' . MSB_NL; 151.$value .= '#' . MSB_NL . MSB_NL; 152.} 153.$value .= $this->_GetInserts($table); 154.} 155.$value .= MSB_NL . MSB_NL; 156.$this->_Query('UNLOCK TABLES'); 157.return $value; 158.} 159.function _GetInserts($table) 160.{ 161.$value = ''; 162.if (!($result = $this->_Query('SELECT * FROM ' . $table))) 163.{ 164.return false; 165.} 166.while ($row = mysql_fetch_row($result)) 167.{ 168.$values = ''; 169.foreach ($row as $data) 170.{ 171.$values .= '\'' . addslashes($data) . '\', '; 172.} 173.$values = substr($values, 0, -2); 174.$value .= 'INSERT INTO ' . $table . ' VALUES (' . $values . ');' . MSB_NL; 175.} 176.return $value; 177.} 178.function _Retrieve() 179.{ 180.$value = ''; 181.if (!$this->_Connect()) 182.{ 183.return false; 184.} 185.if ($this->comments) 186.{ 187.$value .= '#' . MSB_NL; 188.$value .= '# MySQL database dump' . MSB_NL; 189.$value .= '# Created by MySQL_Backup class, ver. ' . MSB_VERSION . MSB_NL; 190.$value .= '#' . MSB_NL; 191.$value .= '# Host: ' . $this->server . MSB_NL; 192.$value .= '# Generated: ' . date('M j, Y') . ' at ' . date('H:i') . MSB_NL; 193.$value .= '# MySQL version: ' . mysql_get_server_info() . MSB_NL; 194.$value .= '# PHP version: ' . phpversion() . MSB_NL; 195.if (!empty($this->database)) 196.{ 197.$value .= '#' . MSB_NL; 198.$value .= '# Database: `' . $this->database . '`' . MSB_NL; 199.} 200.$value .= '#' . MSB_NL . MSB_NL . MSB_NL; 201.} 202.if (!($tables = $this->_GetTables())) 203.{ 204.return false; 205.} 206.foreach ($tables as $table) 207.{ 208.if (!($table_dump = $this->_DumpTable($table))) 209.{ 210.$this->error = mysql_error(); 211.return false; 212.} 213.$value .= $table_dump; 214.} 215.return $value; 216.} 217.function _SaveToFile($fname, $sql, $compress) 218.{ 219.if ($compress) 220.{ 221.if (!($zf = gzopen($fname, 'w9'))) 222.{ 223.$this->error = 'Can\'t create the output file.'; 224.return false; 225.} 226.gzwrite($zf, $sql); 227.gzclose($zf); 228.} 229.else 230.{ 231.if (!($f = fopen($fname, 'w'))) 232.{ 233.$this->error = 'Can\'t create the output file.'; 234.return false; 235.} 236.fwrite($f, $sql); 237.fclose($f); 238.} 239.return true; 240.} 241.function _DownloadFile($fname, $sql, $compress) 242.{ 243.header('Content-disposition: filename=' . $fname); 244.header('Content-type: application/octetstream'); 245.header('Pragma: no-cache'); 246.header('Expires: 0'); 247.echo ($compress ? gzencode($sql) : $sql); 248.return true; 249.} 250.} 251.?> طريقة الاستخدام : أسهل مما تتخيل فقط قم باضافة بيانات الاتصال بقاعدة البيانات المراد أخذ باك اب لها view source print? 1.var $server = 'localhost'; 2. var $port = 3306; 3. var $username = 'root'; 4. var $password = ''; 5. var $database = ''; ودع الباقى على الكلاس.......... لتحميل الملف من هــــــــــــــــــنا http://advphp.com/tuts/files/backup.rar
|
![]() |
| مواقع النشر (المفضلة) |
| الكلمات الدلالية (Tags) |
| أخذ نسخة احتياطية, لقاعدة البيانات ب php |
| أدوات الموضوع | |
| انواع عرض الموضوع | |
|
|
اضغط هنا وادخل ايميلك حتى يصلك جديدنا
القسم العام - اخبار التقنيه - العاب كمبيوتر - برامج - دروس التصميم - مسجات - برامج و العاب جوال - لغات برمجه - تطوير منتديات - جوجل google - قوالب واستايلات - SEO و XML و RSS - هاكات - تطوير مواقع - نطاقات - استضافه - تبادل اعلانى - دروس فوتوشوب - - ملحقات فوتوشوب - فلاش - سويش ماكس - تصميم استايلات - العاب - مواقع عالميه - دروس فرونت بيج - دريم ويفر