CodeIgniter 是一款很強大的 PHP Framework,裡面有很多超方便的函示庫
能快速解決很多需要另行開發功能的需求,尤其資料庫備份 dbutil 實在太令人驚艷了
dbutil 語法應用如下,只要在伺服器端寫上排程程序,定時即可執行自動備份動作,太方便啦!
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Backup_DB extends CI_Controller {
public function __construct() {
parent::__construct();
}
function index() {
$this->load->dbutil();
$prefs = array(
// 'tables' => array(), // 如果不指定資料表,可以不填
'format' => 'zip', // 壓縮格式
'filename' => 'db_backup.sql' // 資料庫檔案
);
$backup =& $this->dbutil->backup($prefs);
$filename = date("Ymd").'_db.zip';
// 存放在主機上的 _database_ 資料夾中
$save = dirname(dirname(dirname(__FILE__))).'/_database_/'.$filename;
$this->load->helper('file');
write_file($save, $backup);
// 測試下載
// $this->load->helper('download');
// force_download($filename, $backup);
}
}
最近處理師傅的外掛系統,由於資料庫越來越大(將近100MB),結果造成語法跑不動就掛掉了,試了很多種方法,把資料表寫成迴圈sleep(3)分開存也沒辦法,最終只好調伺服器的 upload_max_filesize 設定,希望還能用好一陣子 ^_^
參考連結:Codeigniter技術文件-資料庫工具類別