激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - thinkphp備份數據庫的方法分享

thinkphp備份數據庫的方法分享

2020-08-27 15:09PHP編程實例 PHP教程

這篇文章主要介紹了thinkphp備份數據庫的方法分享,非常的簡單實用,推薦給有需要的小伙伴們

貌似THINKPHP沒有備份數據庫的方法,所以我自己寫了一個,數據庫連接和事務處理用的是pdo,如果有需要的可以聯系我,寫個mysql或者mysqli的

 

復制代碼 代碼如下:


<?php
class SqlAction extends Action{
function outsql(){
header(“Content-Type:text/html;charset=utf-8″);
/*用C方法讀取數據庫配置*/
$host=C(‘DB_HOST');
$db_name=C(‘DB_NAME');
$user=C(‘DB_USER');
$password=C(‘DB_PWD');
/*調用導出數據庫的私有方法*/
$outstream=$this->outputSql($host, $dbname, $user, $password);
/*下載導出數據庫*/
header(“Content-Disposition: attachment; filename=$dbname.sql”);
echo $outstream;
}
/*
* 數據庫導出函數outputSql
* 用PDO方式導出數據庫數據
* $host 主機名 如localhost
* $dbname 數據庫名
* $user 用戶名
* $password 密碼
* $flag 標志位0或1 0為僅導出數據庫結構 1為導出數據庫結構和數據 默認為1
*/
private function outputSql($host, $dbname, $user, $password, $flag=1) {
try {
$pdo = new PDO(“mysql:host=$host;dbname=$dbname”, $user, $password); //連接數據庫
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); //設置調優參數,遇到錯誤拋出異常
} catch (PDOException $e) {
echo $e->getMessage(); //如果連接異常則拋出錯誤信息
exit;
}
$mysql = “DROP DATABASE IF EXISTS `$dbname`;\n”; //$mysql裝載sql語句,這里如果存在數據庫則drop該數據庫
$creat_db=$pdo->query(“show create database $dbname”)->fetch();//用show create database查看sql語句
preg_match(‘/DEFAULT CHARACTER SET(.*)\*/', $creat_db[‘Create Database'],$matches);//正則取出DEFAULT CHARACTER SET 后面的字符集
$mysql.=”CREATE DATABASE `$dbname` DEFAULT CHARACTER SET $matches[1]”;//該語句如CREATE DATABASE `test_db` DEFAULT CHARACTER SET utf8
/*查找該數據庫的字符整序如COLLATE utf8_general_ci*/
$db_collate=$pdo->query(“SELECT DEFAULT_COLLATION_NAME FROM information_schema.SCHEMATA WHERE SCHEMA_NAME ='$dbname' LIMIT 1″)->fetch();
$mysql.=”COLLATE “.$db_collate[‘DEFAULT_COLLATION_NAME'].”;\nUSE `$dbname`;\n\n”;
$statments = $pdo->query(“show tables”); //返回結果集,show tables檢視所有表名
foreach ($statments as $value) {//遍歷此結果集,導出每個表名對應的信息
$table_name = $value[0]; //獲取該表名
$mysql.=”DROP TABLE IF EXISTS `$table_name`;\n”; //每個表前都準備Drop語句
$table_query = $pdo->query(“show create table `$table_name`”); //取出該表建表信息的結果集
$create_sql = $table_query->fetch(); //利用fetch方法取出該結果集對應的數組
$mysql.=$create_sql[‘Create Table'] . “;\r\n\r\n”; //寫入建表信息
if ($flag != 0) {//如果標志位不是0則繼續取出該表內容生成insert語句
$iteams_query = $pdo->query(“select * from `$table_name`”); //取出該表所有字段結果集
$values = “”; //準備空字符串裝載insert value值
$items = “”; //準備空字符串裝載該表字段名
while ($item_query = $iteams_query->fetch(PDO::FETCH_ASSOC)) { //用關聯查詢方式返回表中字段名和值的數組
$item_names = array_keys($item_query); //取出該數組鍵值 即字段名
$item_names = array_map(“addslashes”, $item_names); //將特殊字符轉譯加\
$items = join(‘`,`', $item_names); //聯合字段名 如:items1`,`item2 `符號為反引號 鍵盤1旁邊 字段名用反引號括起
$item_values = array_values($item_query); //取出該數組值 即字段對應的值
$item_values = array_map(“addslashes”, $item_values); //將特殊字符轉譯加\
$value_string = join(“‘,'”, $item_values); //聯合值 如:value1′,'value2 值用單引號括起
$value_string = “(‘” . $value_string . “‘),”; //值兩邊加括號
$values.=”\n” . $value_string; //最后返回給$value
}
if ($values != “”) {//如果$values不為空,即該表有內容
//寫入insert語句
$insert_sql = “INSERT INTO `$table_name` (`$items`) VALUES” . rtrim($values, “,”) . “;\n\r”;
//將該語句寫入$mysql
$mysql.=$insert_sql;
}
}

 

}
return $mysql;
}
}
?>

 

是不是很實用的功能呢,小伙伴們可以直接移植到自己的項目中去的。

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25
主站蜘蛛池模板: 欧美福利视频一区二区 | 国产va在线观看 | www.99热精品| 成人毛片免费看 | 国产精品久久久久无码av | 4p嗯啊巨肉寝室调教男男视频 | 特级毛片免费视频 | 欧美一级免费高清 | 欧美18—19sex性hd按摩 | 天天草天天干天天射 | av免费在线播放网址 | 久久久精品99| 久久国产在线观看 | 成人一区二区三区在线 | 97人操| 国产欧美精品一区二区三区四区 | 草莓视频久久 | 黄色特级毛片 | 最新中文字幕在线视频 | 黄视频网站免费在线观看 | 国产资源视频在线观看 | 亚洲性生活视频 | 《97色伦在色在线播放》 | 在线观看麻豆 | 成人福利在线观看 | 影视免费观看 | 视频www| 一本色道久久99精品综合蜜臀 | 日韩精品久久久 | 欧美亚洲另类在线 | 91网站链接 | 免费的性爱视频 | 进去了(高h) | 国产激情网 | 毛片视频网站 | 色交视频 | 姑娘第5集高清在线观看 | 一区二区三区手机在线观看 | 欧美久久一区二区 | 成人 精品 | 国产午夜精品久久久久久免费视 |