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,恢復前備份。2,有之前的備份才可以恢復。3,下載數據庫管理工具,sqlyun,navcat,等可進行導入導出。4.注意恢復期間對前台影響。(最好關閉前台訪問)5.做好出問題時的應對準備

php怎麼備份數據庫

1.打開數據庫備份頁面

//php代碼,導出數據庫

public function exportSql() {

$dbName = C(‘DB_NAME’); //讀取配置文件中的數據庫用戶名、密碼、數據庫名

$dbUser = C(‘DB_USER’);

$dbPwd = C(‘DB_PWD’);

$fileName = date(“Y-m-d”).”_”.$dbName.”.sql”;

$dumpFileName = “./sql_backup/”.$fileName;

exec(“D:/xampp/mysql/bin/mysqldump -u$dbUser -p$dbPwd $dbName $dumpFileName”);

}

2.php exec函數,執行外部程序命令

exec(“D:/xampp/mysql/bin/mysqldump -u$dbUser -p$dbPwd $dbName $dumpFileName”);

此處執行mysqldump命令,導出數據庫到$dumpFileName中,“D:/xampp/mysql/bin/”為mysqldump所在位置,“-u$dbUser -p$dbPwd”數據庫的用戶名和密碼(中間不要加空格),$dbName為要導出數據庫的名字

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

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
WRPUS的頭像WRPUS
上一篇 2025-01-14 18:55
下一篇 2025-01-14 18:55

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

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

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

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

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

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • 數據庫第三範式會有刪除插入異常

    如果沒有正確設計數據庫,第三範式可能導致刪除和插入異常。以下是詳細解釋: 一、什麼是第三範式和範式理論? 範式理論是關係數據庫中的一個規範化過程。第三範式是範式理論中的一種常見形式…

    編程 2025-04-29
  • leveldb和unqlite:兩個高性能的數據庫存儲引擎

    本文將介紹兩款高性能的數據庫存儲引擎:leveldb和unqlite,並從多個方面對它們進行詳細的闡述。 一、leveldb:輕量級的鍵值存儲引擎 1、leveldb概述: lev…

    編程 2025-04-28
  • Python怎麼導入數據庫

    Python是一種高級編程語言。它具有簡單、易讀的語法和廣泛的庫,讓它成為一個靈活和強大的工具。Python的數據庫連接類型可以多種多樣,其中包括MySQL、Oracle、Post…

    編程 2025-04-28
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • Python在線編輯器的優勢與實現方式

    Python在線編輯器是Python語言愛好者的重要工具之一,它可以讓用戶方便快捷的在線編碼、調試和分享代碼,無需在本地安裝Python環境。本文將從多個方面對Python在線編輯…

    編程 2025-04-28
  • 用什麼來備份 ssbackup 文件?

    SSBackup是一種用於存儲數據的文件格式,可以在Snapshots和Debian GNU / Linux系統上使用。備份文件是大多數用戶和數據中心管理員的關鍵需求。通過備份,可…

    編程 2025-04-27

發表回復

登錄後才能評論