引入第三方擴充套件的教程 :tp5框架下實現資料庫的備份功能-tp5er/tp5-databackup
一、備份資料庫的內容是生成的資料表的語句,語句內容主要包含是建立表,和插入表的內容。
簡要步驟如下:
1.獲取資料庫的所有的表
select name from 資料庫名.
.sysobjects where xtype=
'u' order by name
2.獲取所有表對應的所有欄位和相關屬性
select c.table_schema ,
c.table_name ,
c.column_name ,
c.data_type ,
c.character_maximum_length ,
c.column_default ,
c.is_nullable ,
c.numeric_precision ,
c.numeric_scale
from [information_schema]
.[columns] c
where table_name =
'資料庫表名'
3.獲取所有表對應的表內容
$data = $this->pdo->
query
("select * from ");
$str =
"/* sql server separation */"
."\nset nocount on \n";if
($data)
$field =
rtrim
($field,
",")
; $str .
="insert into values ()"
."\n";}
$str.
="select 1"
;return $str;
}else
4.將以上的內容生成.sql檔案
$recognize = $this->options[
'database'];
$dir = $this->
trimpath
($path)
; $return_file_name = self:
:dir_sep . $recognize.$this->num;
$filename = $dir . $return_file_name;
$path = $this->
directory
($dir)
;//建立目錄
if($path !=
= true)
// 是否對檔案進行壓縮
$iscompress =
isset
($options[
'is_compress'])
? $options[
'is_compress']:
0;if($iscompress ==0)
else
$this->filename = $return_file_name;
}
二、還原資料庫是將備份生成的.sql檔案的內容一一生成資料庫所需的表,一一覆蓋掉當前的資料庫
簡要步驟如下:
1.獲取備份資料庫生成sql檔案的內容
'select top 1 * from sys.databases where name=\''
.$this->options[
'database'].
'\''
2.判斷當前資料庫是否有備份資料庫裡的資料表
$bool = $this->pdo->
query
('select top 1 * from sys.databases where name=\''
.$this->options[
'database'].
'\'');
if(!$bool)
3.刪除當前資料庫和執行sql檔案的內容,還原資料。
$content =
explode
('/* sql server separation */'
, $this->content)
;for
($i=
1;$i<
count
($content)
;$i++
)
忘說一點是備份資料庫之前,連線mssql資料庫也是關鍵。
$dbdb = new\pdo
("sqlsrv:server=這裡是host;database=資料庫名"
,$user,$pwd)
;//這是通過dsn的連線方法
最後看到成功了,挺感動,於是,寫在部落格裡記錄一下,也是我的第一篇部落格。如果大家有更加好的方法,可以寫下,大家相互交流交流!
ThinkPHP5使用快取
cache 使用復合快取型別 type complex 預設使用的快取 default 驅動方式 type file 在這設定換人的快取方式 快取儲存目錄 path cache path,檔案快取 file 驅動方式 type file 設定不同的快取儲存目錄 path runtime path f...
thinkphp5內建標籤
知道內建標籤怎麼用,查手冊的時候好查 卻功能的時候在裡面找著來用 1 內建標籤23 變數輸出使用普通標籤就足夠了,但是要完成其他的控制 迴圈和判斷功能,就需要借助模板引擎的標籤庫 4功能了,系統內建標籤庫的所有標籤無需引入標籤庫即可直接使用。5內建標籤包括 6標籤名作用包含屬性 7include 包...
ThinkPHP5使用QueryList4教程
幾乎每天都有人問我tp5中如何使用querylist4,所以寫了這篇教程。說實話我並不太想寫這篇教程,因為實在是沒有什麼技術含量。在thinkphp5 根目錄執行composer命令安裝querylist composer require jaeger querylist下面演示在index控制器中...