我有一段代碼可以顯示瀏覽器中數據庫查詢的數量(3個)結果和比較結果。它顯示每個數據庫的數字的差異。它的工作原理就是這樣。現在,我要做的就是忘掉網頁,並且每天運行一次php腳本,例如凌晨3點,腳本必須查看前一天的DB數據有什麼不同。如果發現任何差異,使用亞馬遜簡易通知服務,將向所有訂戶發送電子郵件,並提供這些差異的詳細信息。這裏是我的代碼的一部分是從以前的工作的腳本(一個用於瀏覽器)新:檢索前幾天的數據(PHP腳本),並使用Amazon SNS發送數據
if ($total_results) {
foreach ($total_results as $cid => $dates) {
foreach($dates as $row) {
$dbOne_total = $row['dbOne_total'];
$dbTwo_total = $row['dbTwo_total'];
$dbThree_total = $row['dbThree_total'];
$difference = ($dbTwo_total - $dbOne_total);
$difference_bill = ($dbThree_total - $dbOne_total);
$mismatchFile = fopen("mismatch.txt", "w");
$issue = "";
while($startDate == date('Y-m-d', strtotime('-1 day'))) {
if (($difference_bill > 0) || ($difference > 0)) {
$issue = ($row["company"] ." ". $row["company_id"]. " ". "dbTwo Difference". " ". $difference. " "."dbThree Difference". " ". $difference_bill);
print_r($issue);
topic("DATABASE-MISMATCH")->send("List of mismatches between databases", "Issue: $issue/n"); // for ASN
}
}
fwrite($mismatchFile, $issue);
fclose($mismatchFile);
}
}
$的startDate是我使用整個代碼的變量,因爲我有運行需要這個SQL查詢日期以獲取信息。 我質疑這條線:
while($startDate == date('Y-m-d', strtotime('-1 day'))) {
我不知道的strtotime是最好的選擇(我擔心可能格式問題)。有沒有更好的方法來獲取前一天的數據?
我想知道我是否正確地接近這個問題?我還想知道如何將$ issue變量引入Amazon SNS電子郵件正文中作爲列表的任何建議,還是創建文件並將其作爲附件發送會更好?
我還是一個PHP的新手,所以任何幫助,或正確的方向有幫助的點,將非常感激。