PHPスクリプトの開始時刻・終了時刻をDBに登録する方法です。
Cronを使う場合は特に結果が分かりにくいので、Cronのログを登録するDBを作っておくと便利です。
【特徴】
・ファイル名を取得し、DBに登録
・ファイル名の中の数字をSQL文で使う場合を考慮(連番ファイル実行を考慮)
・開始日時、終了日時を登録
・実行時間を登録
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
/*----------------------------------------------- ヘッダー部分(ファイル名取得、開始日時設定) -----------------------------------------------*/ $start_time=date("Y/m/d H:i:s");//スクリプト開始日時設定 $path = $_SERVER['SCRIPT_NAME']; $file = basename($path); $file = basename($path,".php"); //拡張子を除いたファイル名 //ファイル名に含まれる数字をSQLで使う場合の処理 $pattern='/0*([0-9]+)/i';//数字の頭の0を削除 preg_match($pattern, $file, $match ); $num=$match[1]; /*----------------------------------------------- スクリプト記入 -----------------------------------------------*/ /*----------------------------------------------- フッター部分 -----------------------------------------------*/ $end_time=date("Y/m/d H:i:s");//スクリプト終了日時設定 $date_sp= strtotime($end_time)-strtotime($start_time);//2つの時間の差(秒) //echo '<br>'.$start_time.'|'.$end_time; //echo '<br>【'.$date_sp.'】'; //cron_check DBへのデータ登録 try { $dbh_cron_log = new PDO($DSN , $DBUSER , $DBPASS); echo $dbh_cron_log; $query_cron_log=<<<EOF INSERT INTO cron_check (first_date,latest_date,time,file,sec) VALUES (:first_date,:latest_date,:time,:file,:sec) EOF; $sec=($date_sp/60); $stmt_cron_log = $dbh_cron_log->prepare($query_cron_log); $stmt_cron_log->bindParam(':first_date', $start_time); $stmt_cron_log->bindParam(':latest_date', $end_time); $stmt_cron_log->bindParam(':time', $date_sp); $stmt_cron_log->bindParam(':file', $file); $stmt_cron_log->bindParam(':sec', $sec); $stmt_cron_log->execute(); }//try_end catch(PDOException $e) { print "Error!: " . $e->getMessage() . "<br>"; die(); }//catch_end |
人気記事一覧
- MySQL 最大の値・最新の日付データを1つ抽出する方法(MAX)
- [CakePHP] XformHelperの使い方
- Linux: スワップファイル(swp)の削除方法
- HTMLのForm methodとactionについて
- PHPでカンマ区切りデータを配列に入れる方法 (explode)
- [エラー対処] failed to open stream: No such file or directory
- [vsftp] FileZillaから接続できない場合の対処法
- [CSS]ブロック要素(div)の高さを、内部のfloat要素に合わせて自動調整する
- PHP5.1→PHP5.3へバージョンアップする方法(CentOS)
- PHPでテキストを1行ずつ読み込む方法(file_get_contents,explode)