1、先給m添加壹個上次更改的時間字段,比如change_at,數據類弄推薦int或者timespan,用int會比較好,因為可以用php的time()來取時間對比。
2、定義壹個函數get_m(),每次要取m值的時候都通過這個函數取。在取值之前對m進行操作:
function get_m()
{
$now = time();
$change_at = get_change_at();//取得change_at的值,函數自己去寫。
$m = read_m();//取得數據庫內的真實數值
$time_span = $now - $change_at;
//沒有達到更新條件,直接返回;
if ($time_span < 180)
return $m;
$m += floor($time_span / 180);
$change_at += (floor($time_span/180) * 180);
//將新的m和change_at寫入數據庫
save_m($m,$change_at);
return $m;
}
其中的幾個函數read_m(),get_change_at(),save_m()根據具體的數據庫結構寫功能,也可以不要用函數直接把數據庫操作代碼寫在那邊。
這樣就能保證每次程序取到的值和數據庫自動更改的情況下是壹樣的。