Thứ Sáu, 28 tháng 11, 2014

Tự động lưu dữ liệu Mysql database bằng PHP



Tự động lưu dữ liệu Mysql database bằng PHP

Tự động lưu dữ liệu Mysql database bằng PHP
Khi bạn thiết kế và sở hữu một trang blog hay web thì việc sao lưu cơ sở dữ liệu (Database) là một việc làm hết sức cần thiết và phải được thực hiện thường xuyên. Bởi vì chúng ta sẽ không thể nào biết ngày nào, giờ nào trang web của chúng ta sẽ bị các kẻ xấu hack và bị lỗi. 

Nếu các bạn không có quá nhiều thời gian để tiến hành sao lưu (backup) bằng tay, thì mình xin chia sẻ cho các bạn một đoạn code bằng PHP. Với đoạn code này, các bạn sẽ có thể ngồi rung đùi mà xem phim hay nghe nhạc, bởi vì việc sao lưu đã được tiến hành tự động theo ngày giờ mà các bạn ấn định.
Kết nối CSDL
Đầu tiên, chúng ta sẽ cần tạo một file và đặt tên là connection.php, file này dùng để kết nối tới database mà chúng ta cần tiến hành sao lưu (backup).
01
02
03
04
05
06
07
08
09
10
11
<?php
  $host="localhost";
  $uname="YourUserName";
  $pass="YourPassword";
  $database = "YourDatabaseName";
$connection=mysql_connect($host,$uname,$pass);
or die("Database Connection Failed");
$selectdb=mysql_select_db($database) or die("Database could not be selected");
$result=mysql_select_db($database)
or die("database cannot be selected <br>");
?>
Các bạn nhớ thay đổi tên $host, $uname, $pass  $database phù hợp với các giá trị trên server của các bạn nhé.
Tiến hành sao lưu :
Để tiến hành sao lưu, các bạn tạo một file mới, rồi copy toàn bộ đoạn code sau vào bên trong nó :
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<?php
include("connection.php");
function backup_db(){
/* Luu tru tat ca ten Table vao mot mang */
$allTables = array();
$result = mysql_query('SHOW TABLES');
while($row = mysql_fetch_row($result)){
     $allTables[] = $row[0];
}
foreach($allTables as $table){
$result = mysql_query('SELECT * FROM '.$table);
$num_fields = mysql_num_fields($result);
$return.= 'DROP TABLE IF EXISTS '.$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] = str_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";
}
// Tao Backup Folder
$folder = 'DB_Backup/';
if (!is_dir($folder))
mkdir($folder, 0777, true);
chmod($folder, 0777);
$date = date('m-d-Y-H-i-s', time());
$filename = $folder."db-backup-".$date;
$handle = fopen($filename.'.sql','w+');
fwrite($handle,$return);
fclose($handle);
}
// Goi ham thuc thi
backup_db();
?>
Bây giờ, mỗi khi cần sao lưu , các bạn chỉ cần chạy đoạn code bên trên là okie. Mình mong là qua bài viết này, các bạn sẽ có thể tiết kiệm được nhiều thời gian hơn cho bản thân mình , đồng thời cũng sẽ giúp các bạn có thêm kiến thức trong việc sử dụng PHP. Nếu như bạn cảm thấy những kiến thức và kỹ năng bạn còn yếu thì các bạn nên tìm một khóa học về lập trình web để bồi đắp thêm những lỗ hổng của bạn.

Tin khác:
dich vu thiet ke web
dao tao thiet ke web
hoc lap trinh thiet ke web o ha noi

0 nhận xét:

Đăng nhận xét