/ 網站開發

2023年03月03日 69

PHP Codeigniter 資料庫備份 dbutil 應用


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技術文件-資料庫工具類別

標籤: #PHP , #Codeigniter