[上課筆記] 常看見的系統維護時間並取消SQL連接
常見在PHP網頁遊戲或網站更新備份,會在指定日期或星期會自動進行系統維護並取消SQL連結。這部分分為兩個階段來討論。首先,開發者不會在每一個php去head宣告sql連結,會在另外一個建立linkdb.php並透過include作為SQL連結需要。再來是,每當被執行linkdb.php時,再連結SQL前做個時間檢查,如果剛好符合維修時間內,那應該停止SQL連接並回傳告知系統維修中
接下來分兩步驟,首先到資料庫建立判斷的時間所用,再來設計一個stopdb.php,做為時段上的檢查
[暫存]
回家作業
做一個簡易的維護系統
做一個資料表需要欄位 1.開始時間 2. 結束時間(年月日時分秒)
手動新增一筆資料 1. 開始時間 2. 結束時間(年月日時分秒)
建立一個後台page,可以修改資料表的內容
建立兩個前台page(a01.php & a02.php)。
如果處於設定好的維護期間之內,網頁自動切到a0.2.php否則切換到a01.php
修改資料表的頁面不受維護系統影響
*******************************linkdb.php*******************************
<?php
$link=mysqli_connect("localhost","root","","a2018");
mysqli_query($link,"set names utf8") or die("資料庫連結發生錯誤");
include("stopdb.php");
?>
接下來分兩步驟,首先到資料庫建立判斷的時間所用,再來設計一個stopdb.php,做為時段上的檢查
*******************************stopdb.php*******************************
<?php
$check_time=strtotime("+7hour");
$now_time=date("H:i:s",$check_time);
$sql="select * from w05_webstop where ws_start<='$now_time' and '$now_time'<=ws_stop";
$ro=mysqli_query($link,$sql);
$row=mysqli_fetch_assoc($ro);
$num=mysqli_num_rows($ro);//計算這次搜尋到幾筆資料
if($num==1){
$check_stop=0;
$now_day=date("Y-m-d",$check_time);
$now_week=date("w",$check_time);
$check_stop=0;
if($now_day==$row["ws_date"]) $check_stop=1;
if($now_week==$row["ws_week"]) $check_stop=1;
/* 當前時間的日期與星期
echo $now_day."<br>";
echo $now_week;
*/
/* 資料庫的日期與星期
echo $row["ws_date"]."<br>";
echo $row["ws_week"];
*/
if($check_stop) {
header("location:now_stop.php");
exit();
}
}
/*
系統維護頁面用途
當系統進行維護時,停止連線者使用網站,及使用資料庫相關功能
1. 在設定資料庫連線後include一個執行用的php
2. 這個檔案連結一個資料表(設定維護時間),欄位為:索引int,日期date,星期int,開始時間time,結束時間time
3. stop.php直接撈取資料表的內容`,並以當前時間做判斷(時分秒)
4. 現在的時間now_time如果比開始維護的時間還大,且比結束的時間小,則進入第二層判斷
5. 第二層的判斷:先抓當前日期與日期,並比對資料庫與當前時間的[日期][星期]兩者是否相同
6. 如果符合其中一項,則進入維護狀態(終止頁面執行),並強制跳頁到指定頁面
*/
?>
*******************************now_stop.php*******************************
<?php
echo "系統維護中";
?>
[暫存]
回家作業
做一個簡易的維護系統
做一個資料表需要欄位 1.開始時間 2. 結束時間(年月日時分秒)
手動新增一筆資料 1. 開始時間 2. 結束時間(年月日時分秒)
建立一個後台page,可以修改資料表的內容
建立兩個前台page(a01.php & a02.php)。
如果處於設定好的維護期間之內,網頁自動切到a0.2.php否則切換到a01.php
修改資料表的頁面不受維護系統影響
留言
張貼留言
留言請注意禮節與尊重他人,良好的交流環境需要你我共同維護。
VtigerCRM 相關留言討論,請改至FaceBook社團申請加入使用
https://www.facebook.com/groups/vTigerCRMtoTaiwan/