一個簡單php數據庫備份程序,php備份mysql數據庫

本文目錄一覽:

php 代碼備份數據庫

?php

/*

**************function db_bak()********************

*  功能:備份指定的數據庫中的指定表

*  輸入(按傳入參數解釋):$db_name 要備份的數據庫,$tb_array要備份的表,數組形式的,如果不是數組,將備份整個庫。

  $dir輸出備份文件的目錄,$filename備份文件名,$block_num指定分塊大小(指一條insert語句包含幾天數據)

*  輸出:備份的數據表的sql語句文件,可用於還原

*/

function db_bak($mylink,$dbname,$tab_array=””,$dir,$filename,$block_num=20){

 mysql_select_db($dbname,$mylink) or db_error(mysql_error());

 is_array($tab_array) or $tab_array=db_showtb($mylink,$dbname,true); //如果$tab_array不是數組,則取得整個庫的表

 if($dir){

  if(!file_exists($dir)){

   $flag=mkdir($dir);

   if(!$flag)

    return 2;

  }

 }

 //檢查數據表是否存在

 foreach($tab_array as $tab)

  db_e_tab($mylink,$dbname,$tab) or db_error($tab.” is not exist!”);

 $fp=fopen($dir.$filename,”w”);

 foreach($tab_array as $tab){  

  fputs($fp,”DROP TABLE IF EXISTS “.$tab.”;\r\n”);

  $tabdef_array=mysql_fetch_array(mysql_query(“SHOW CREATE TABLE “.$tab,$mylink));

  fputs($fp,str_replace(“\n”,””,$tabdef_array[“Create Table”]).”;\r\n”); 

  fputs($fp,”LOCK TABLES “.$tab.” WRITE;\r\n”); 

  $getvalue_result=mysql_query(“select * from “.$tab,$mylink);

  if(mysql_num_rows($getvalue_result)){

   $i=1;  

   $p=””;

   $start_flag=true;

   while($getvalue_array=mysql_fetch_row($getvalue_result)){

    $values=join(“‘,'”,array_map(‘db_data_check’,$getvalue_array));

    $start_flag  fputs($fp,”insert into “.$tab.” values”);

    if($i$block_num){

     fputs($fp,”,(‘”.$values.”‘);\r\n”);

     $start_flag=true;

     $i=0;

    }else{

     fputs($fp,$p.”(‘”.$values.”‘)”);

     $start_flag=false;

     $i++;

    }

    $p=$start_flag?””:”,”; 

   }

   $start_flag or fputs($fp,”;\r\n”);

  }

  fputs($fp,”UNLOCK TABLES;\r\n”);  

 }

 fclose($fp);  

}

/*

**************function db_in()********************

*  功能:還原備份函數db_bak生成的數據庫文件

*  輸入(按傳入參數解釋):$db_name 要備份的數據庫,$filename要還原的數據庫文件

*  輸出:將數據還原到數據庫

*  原理:將文件分割成一個數組,然後逐條將數據導入數據庫

*  警告:執行該函數會刪除原來的數據表

*/

function db_in($mylink,$dbname,$filename){

 if(!file_exists($filename)){

  return 0;

 }

 db_e_db($mylink,$dbname) or (mysql_query(“create database “.$dbname,$mylink)or db_error(mysql_error()));

 mysql_select_db($dbname,$mylink);

 $sql_array=file($filename);

 foreach($sql_array as $sql){

  mysql_query(trim($sql),$mylink) or db_error(mysql_error());

 }

}

//我自己寫的。可以參考哈

怎樣使用PHP自動備份數據庫

mysql數據庫的備份方式有很多;

例如:

1、使用mysqldump函數

mysqldump -u username -p dbname table1 table2 …   BackupName.sql

dbname參數表示數據庫的名稱

table1和table2參數表示需要備份的表的名稱,為空則整個數據庫備份;

BackupName.sql參數表設計備份文件的名稱,文件名前面可以加上一個絕對路徑。通常將數據庫被分成一個後綴名為sql的文件;

基本使用:

2、管理工具

如何用php進行數據備份

1、如果服務器允許mysqldump 並且沒有禁止PHP的shell_exec()這個函數的話

直接在PHP裡面執行mysqldump就可以了。

2、通過mysql_query(‘show tables’)的返回值遍歷每個表,循環對每個表使用查詢語句

select * into outfile ‘路徑/文件名’ from 表名

缺點是這樣得到的是純數據,恢複數據的時候你需要額外再寫腳本

3、同樣通過show tables返回表名,遍歷每個表,通過select 語句查詢,然後逐條結果處理,比如手工添加drop table 和create table 以及insert into等等,然後再寫入文件。這樣得到的備份數據是比較接近mysqldump的結果的,各種工具都可以用來恢複數據。缺點是如果數據庫太大的話,效率不好說

php mysql如何備份數據

我一般用二種方法:

1.SQL文件數據備份;

下載一個Navicat Premium,使用這個軟件,正確連接並訪問數據庫,

點中你想要備份的數據庫,按右鍵使用轉存SQL文件,就會出現你要備份的提示框,保存即可;

若要導進則用運行SQL文件,非常方便的導入單個數據庫的,但這種只適合於小數據量的數據庫(50萬條以下);

2.底層備份,但這種備份要求安裝是同一版本的mysql才適合,否則會出現未知錯誤;

直接找到mysql安裝目錄,找到data文件夾全部拷唄到你想備份的地方即可,還原就拷回來即可。適合大數據量的備份方法!

3.至於樓主硬要用PHP備份數據的話,你可以參考phpadmin和dedecms程序備份數據的方法,但這種執行效率很低的!

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/306167.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2025-01-02 12:00
下一篇 2025-01-02 12:00

相關推薦

  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智能、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29
  • Python程序文件的拓展

    Python是一門功能豐富、易於學習、可讀性高的編程語言。Python程序文件通常以.py為文件拓展名,被廣泛應用於各種領域,包括Web開發、機器學習、科學計算等。為了更好地發揮P…

    編程 2025-04-29
  • Python 常用數據庫有哪些?

    在Python編程中,數據庫是不可或缺的一部分。隨着互聯網應用的不斷擴大,處理海量數據已成為一種趨勢。Python有許多成熟的數據庫管理系統,接下來我們將從多個方面介紹Python…

    編程 2025-04-29
  • Python簡單數學計算

    本文將從多個方面介紹Python的簡單數學計算,包括基礎運算符、函數、庫以及實際應用場景。 一、基礎運算符 Python提供了基礎的算術運算符,包括加(+)、減(-)、乘(*)、除…

    編程 2025-04-29
  • Python滿天星代碼:讓編程變得更加簡單

    本文將從多個方面詳細闡述Python滿天星代碼,為大家介紹它的優點以及如何在編程中使用。無論是剛剛接觸編程還是資深程序員,都能從中獲得一定的收穫。 一、簡介 Python滿天星代碼…

    編程 2025-04-29
  • openeuler安裝數據庫方案

    本文將介紹在openeuler操作系統中安裝數據庫的方案,並提供代碼示例。 一、安裝MariaDB 下面介紹如何在openeuler中安裝MariaDB。 1、更新軟件源 sudo…

    編程 2025-04-29
  • Python購物車程序

    Python購物車程序是一款基於Python編程語言開發的程序,可以實現購物車的相關功能,包括商品的添加、購買、刪除、統計等。 一、添加商品 添加商品是購物車程序的基礎功能之一,用…

    編程 2025-04-29
  • 爬蟲是一種程序

    爬蟲是一種程序,用於自動獲取互聯網上的信息。本文將從如下多個方面對爬蟲的意義、運行方式、應用場景和技術要點等進行詳細的闡述。 一、爬蟲的意義 1、獲取信息:爬蟲可以自動獲取互聯網上…

    編程 2025-04-29
  • Python海龜代碼簡單畫圖

    本文將介紹如何使用Python的海龜庫進行簡單畫圖,並提供相關示例代碼。 一、基礎用法 使用Python的海龜庫,我們可以控制一個小海龜在窗口中移動,並利用它的“畫筆”在窗口中繪製…

    編程 2025-04-29

發表回復

登錄後才能評論