Changeset 16251


Ignore:
Timestamp:
2007/10/03 17:47:48 (16 years ago)
Author:
nanasess
Message:

クラス化に伴う修正

Location:
branches/feature-module-update
Files:
2 added
1 edited

Legend:

Unmodified
Added
Removed
  • branches/feature-module-update/html/admin/system/bkup.php

    r15532 r16251  
    55 * http://www.lockon.co.jp/ 
    66 */ 
    7 require_once("../require.php"); 
    8 require_once(DATA_PATH. "module/Tar.php"); 
    97 
    10 //ページ管理クラス 
    11 class LC_Page { 
    12     //コンストラクタ 
    13     function LC_Page() { 
    14         //メインテンプレートの指定 
    15         $this->tpl_mainpage = 'system/bkup.tpl'; 
    16         $this->tpl_subnavi = 'system/subnavi.tpl'; 
    17         $this->tpl_mainno = 'system';        
    18         $this->tpl_subno = 'bkup'; 
    19         $this->tpl_subtitle = 'バックアップ管理'; 
    20          
    21         $this->bkup_dir = USER_PATH . "bkup/"; 
    22     } 
    23 } 
     8// {{{ requires 
     9require_once("../../require.php"); 
     10require_once(CLASS_PATH . "page_extends/admin/system/LC_Page_Admin_System_Bkup_Ex.php"); 
    2411 
    25 $objPage = new LC_Page(); 
    26 $objView = new SC_AdminView(); 
    27 $objQuery = new SC_Query(); 
     12// }}} 
     13// {{{ generate page 
    2814 
    29 // セッションクラス 
    30 $objSess = new SC_Session(); 
    31 // 認証可否の判定 
    32 sfIsSuccess($objSess); 
    33  
    34 // バックアップテーブルがなければ作成する 
    35 lfCreateBkupTable(); 
    36  
    37 switch($_POST['mode']) { 
    38 // バックアップを作成する 
    39 case 'bkup': 
    40     // 入力文字列の変換 
    41     $arrData = lfConvertParam($_POST); 
    42  
    43     // エラーチェック 
    44     $arrErr = lfCheckError($arrData); 
    45  
    46     // エラーがなければバックアップ処理を行う   
    47     if (count($arrErr) <= 0) { 
    48         // バックアップファイル作成 
    49         $arrErr = lfCreateBkupData($arrData['bkup_name']); 
    50          
    51         // DBにデータ更新 
    52         if (count($arrErr) <= 0) { 
    53             lfUpdBkupData($arrData); 
    54         }else{ 
    55             $arrForm = $arrData; 
    56         } 
    57          
    58         $objPage->tpl_onload = "alert('バックアップ完了しました');"; 
    59     }else{ 
    60         $arrForm = $arrData; 
    61     } 
    62  
    63     break; 
    64      
    65 // リストア 
    66 case 'restore': 
    67 case 'restore_config': 
    68     if ($_POST['mode'] == 'restore_config') { 
    69         $objPage->mode = "restore_config"; 
    70     } 
    71  
    72     lfRestore($_POST['list_name']); 
    73  
    74     break; 
    75      
    76 // 削除 
    77 case 'delete': 
    78     $del_file = $objPage->bkup_dir.$_POST['list_name'] . ".tar.gz"; 
    79     // ファイルの削除 
    80     if(is_file($del_file)){ 
    81         $ret = unlink($del_file); 
    82     } 
    83  
    84     // DBから削除 
    85     $delsql = "DELETE FROM dtb_bkup WHERE bkup_name = ?"; 
    86     $objQuery->query($delsql, array($_POST['list_name'])); 
    87  
    88     break; 
    89      
    90 // ダウンロード 
    91 case 'download' : 
    92     $filename = $_POST['list_name'] . ".tar.gz"; 
    93     $dl_file = $objPage->bkup_dir.$_POST['list_name'] . ".tar.gz"; 
    94      
    95     // ダウンロード開始 
    96     Header("Content-disposition: attachment; filename=${filename}"); 
    97     Header("Content-type: application/octet-stream; name=${filename}"); 
    98     header("Content-Length: " .filesize($dl_file));  
    99     readfile ($dl_file); 
    100     exit(); 
    101     break; 
    102  
    103 default: 
    104     break; 
    105 } 
    106  
    107 // バックアップリストを取得する 
    108 $arrBkupList = lfGetBkupData("ORDER BY create_date DESC"); 
    109 // テンプレートファイルに渡すデータをセット 
    110 $objPage->arrErr = $arrErr; 
    111 $objPage->arrForm = $arrForm; 
    112 $objPage->arrBkupList = $arrBkupList; 
    113  
    114 $objView->assignobj($objPage);      //変数をテンプレートにアサインする 
    115 $objView->display(MAIN_FRAME);      //テンプレートの出力 
    116  
    117 //------------------------------------------------------------------------------------------------------- 
    118 /* 取得文字列の変換 */ 
    119 function lfConvertParam($array) { 
    120     /* 
    121      *  文字列の変換 
    122      *  K :  「半角(ハンカク)片仮名」を「全角片仮名」に変換 
    123      *  C :  「全角ひら仮名」を「全角かた仮名」に変換 
    124      *  V :  濁点付きの文字を一文字に変換。"K","H"と共に使用します  
    125      *  n :  「全角」数字を「半角(ハンカク)」に変換 
    126      *  a :  全角英数字を半角英数字に変換する 
    127      */ 
    128     $arrConvList['bkup_name'] = "a"; 
    129     $arrConvList['bkup_memo'] = "KVa"; 
    130      
    131     // 文字変換 
    132     foreach ($arrConvList as $key => $val) { 
    133         // POSTされてきた値のみ変換する。 
    134         if(isset($array[$key])) { 
    135             $array[$key] = mb_convert_kana($array[$key] ,$val); 
    136         } 
    137     } 
    138     return $array; 
    139 } 
    140  
    141 // エラーチェック 
    142 function lfCheckError($array){ 
    143     $objErr = new SC_CheckError($array); 
    144      
    145     $objErr->doFunc(array("バックアップ名", "bkup_name", STEXT_LEN), array("EXIST_CHECK","MAX_LENGTH_CHECK","NO_SPTAB","ALNUM_CHECK")); 
    146     $objErr->doFunc(array("バックアップメモ", "bkup_memo", MTEXT_LEN), array("MAX_LENGTH_CHECK")); 
    147      
    148     // 重複チェック 
    149     $ret = lfGetBkupData("WHERE bkup_name = ?", array($array['bkup_name'])); 
    150     if (count($ret) > 0) { 
    151         $objErr->arrErr['bkup_name'] = "バックアップ名が重複しています。別名を入力してください。"; 
    152     } 
    153  
    154     return $objErr->arrErr; 
    155 } 
    156  
    157 // バックアップファイル作成 
    158 function lfCreateBkupData($bkup_name){ 
    159     global $objPage; 
    160     $objQuery = new SC_Query(); 
    161     $csv_data = ""; 
    162     $csv_autoinc = ""; 
    163     $err = true; 
    164      
    165     $bkup_dir = $objPage->bkup_dir; 
    166     if (!is_dir(dirname($bkup_dir))) $err = mkdir(dirname($bkup_dir));       
    167     $bkup_dir = $bkup_dir . $bkup_name . "/"; 
    168  
    169     // 全テーブル取得 
    170     $arrTableList = lfGetTableList(); 
    171      
    172     // 各テーブル情報を取得する 
    173     foreach($arrTableList as $key => $val){ 
    174          
    175         if ($val != "dtb_bkup") { 
    176              
    177             // 自動採番型の構成を取得する 
    178             $csv_autoinc .= lfGetAutoIncrement($val); 
    179              
    180             // 全データを取得 
    181             if ($val == "dtb_pagelayout"){ 
    182                 $arrData = $objQuery->getAll("SELECT * FROM $val ORDER BY page_id"); 
    183             }else{ 
    184                 $arrData = $objQuery->getAll("SELECT * FROM $val"); 
    185             } 
    186              
    187             // CSVデータ生成 
    188             if (count($arrData) > 0) { 
    189                  
    190                 // カラムをCSV形式に整える 
    191                 $arrKyes = sfGetCommaList(array_keys($arrData[0]), false); 
    192                  
    193                 // データをCSV形式に整える 
    194                 $data = ""; 
    195                 foreach($arrData as $data_key => $data_val){ 
    196                     //$val = str_replace("\"", "\\\"", $val); 
    197                     $data .= lfGetCSVList($arrData[$data_key]); 
    198  
    199                 } 
    200                 // CSV出力データ生成 
    201                 $csv_data .= $val . "\n"; 
    202                 $csv_data .= $arrKyes . "\n"; 
    203                 $csv_data .= $data; 
    204                 $csv_data .= "\n"; 
    205             }    
    206              
    207             // タイムアウトを防ぐ 
    208             sfFlush(); 
    209         } 
    210     } 
    211  
    212     $csv_file = $bkup_dir . "bkup_data.csv"; 
    213     $csv_autoinc_file = $bkup_dir . "autoinc_data.csv"; 
    214     mb_internal_encoding(CHAR_CODE); 
    215     // CSV出力 
    216     // ディレクトリが存在していなければ作成する      
    217     if (!is_dir(dirname($csv_file))) { 
    218         $err = mkdir(dirname($csv_file)); 
    219     } 
    220     if ($err) { 
    221         // dataをCSV出力 
    222         $fp = fopen($csv_file,"w"); 
    223         if($fp) { 
    224             if($csv_data != ""){ 
    225                 $err = fwrite($fp, $csv_data); 
    226             } 
    227             fclose($fp); 
    228         } 
    229          
    230         // 自動採番をCSV出力 
    231         $fp = fopen($csv_autoinc_file,"w"); 
    232         if($fp) { 
    233             if($csv_autoinc != ""){ 
    234                 $err = fwrite($fp, $csv_autoinc); 
    235             } 
    236             fclose($fp); 
    237         } 
    238     } 
    239  
    240     // 各種ファイルコピー 
    241     if ($err) { 
    242         // 商品画像ファイルをコピー 
    243         // ディレクトリが存在していなければ作成する      
    244         $image_dir = $bkup_dir . "save_image/"; 
    245         if (!is_dir(dirname($image_dir))) $err = mkdir(dirname($image_dir));         
    246         $copy_mess = ""; 
    247         $copy_mess = sfCopyDir("../../upload/save_image/",$image_dir, $copy_mess); 
    248          
    249         // テンプレートファイルをコピー 
    250         // ディレクトリが存在していなければ作成する      
    251         $templates_dir = $bkup_dir . "templates/"; 
    252         if (!is_dir(dirname($templates_dir))) $err = mkdir(dirname($templates_dir));         
    253         $copy_mess = ""; 
    254         $copy_mess = sfCopyDir("../../user_data/templates/",$templates_dir, $copy_mess); 
    255          
    256         // インクルードファイルをコピー 
    257         // ディレクトリが存在していなければ作成する      
    258         $inc_dir = $bkup_dir . "include/"; 
    259         if (!is_dir(dirname($inc_dir))) $err = mkdir(dirname($inc_dir));         
    260         $copy_mess = ""; 
    261         $copy_mess = sfCopyDir("../../user_data/include/",$inc_dir, $copy_mess); 
    262      
    263         // CSSファイルをコピー 
    264         // ディレクトリが存在していなければ作成する      
    265         $css_dir = $bkup_dir . "css/"; 
    266         if (!is_dir(dirname($css_dir))) $err = mkdir(dirname($css_dir));         
    267         $copy_mess = ""; 
    268         $copy_mess = sfCopyDir("../../user_data/css/",$css_dir, $copy_mess); 
    269  
    270         //圧縮フラグTRUEはgzip圧縮をおこなう 
    271         $tar = new Archive_Tar($objPage->bkup_dir . $bkup_name.".tar.gz", TRUE); 
    272  
    273         //bkupフォルダに移動する 
    274         chdir($objPage->bkup_dir); 
    275  
    276         //圧縮をおこなう 
    277         $zip = $tar->create("./" . $bkup_name . "/"); 
    278  
    279         // バックアップデータの削除 
    280         if ($zip) sfDelFile($bkup_dir); 
    281     } 
    282  
    283     if (!$err) { 
    284         $arrErr['bkup_name'] = "バックアップに失敗しました。"; 
    285         // バックアップデータの削除 
    286         sfDelFile($bkup_dir); 
    287     } 
    288      
    289     return $arrErr; 
    290 } 
    291  
    292 /* 配列の要素をCSVフォーマットで出力する。*/ 
    293 function lfGetCSVList($array) { 
    294     if (count($array) > 0) { 
    295         foreach($array as $key => $val) { 
    296             $val = mb_convert_encoding($val, CHAR_CODE, CHAR_CODE); 
    297             $val = str_replace("\"", "\\\"", $val); 
    298             $line .= "\"".$val."\","; 
    299         } 
    300         $line = ereg_replace(",$", "\n", $line); 
    301     }else{ 
    302         return false; 
    303     } 
    304     return $line; 
    305 } 
    306  
    307 // 全テーブルリストを取得する 
    308 function lfGetTableList(){ 
    309     $objQuery = new SC_Query(); 
    310      
    311     if(DB_TYPE == "pgsql"){ 
    312         $sql = "SELECT tablename FROM pg_tables WHERE tableowner = ? ORDER BY tablename ; "; 
    313         $arrRet = $objQuery->getAll($sql, array(DB_USER)); 
    314         $arrRet = sfSwapArray($arrRet); 
    315         $arrRet = $arrRet['tablename']; 
    316     }else if(DB_TYPE == "mysql"){ 
    317         $sql = "SHOW TABLES;"; 
    318         $arrRet = $objQuery->getAll($sql); 
    319         $arrRet = sfSwapArray($arrRet); 
    320          
    321         // キーを取得 
    322         $arrKey = array_keys($arrRet); 
    323          
    324         $arrRet = $arrRet[$arrKey[0]]; 
    325     } 
    326     return $arrRet; 
    327 } 
    328  
    329 // 自動採番型をCSV出力形式に変換する 
    330 function lfGetAutoIncrement($table_name){ 
    331     $arrColList = lfGetColumnList($table_name); 
    332     $ret = ""; 
    333      
    334     if(DB_TYPE == "pgsql"){ 
    335         $match = 'nextval(\''; 
    336     }else if(DB_TYPE == "mysql"){ 
    337         $match = "auto_incr"; 
    338     } 
    339  
    340     foreach($arrColList['col_def'] as $key => $val){ 
    341          
    342         if (substr($val,0,9) == $match) { 
    343             $col = $arrColList['col_name'][$key]; 
    344             $autoVal = lfGetAutoIncrementVal($table_name, $col); 
    345             $ret .= "$table_name,$col,$autoVal\n"; 
    346         } 
    347     } 
    348      
    349     return $ret; 
    350 } 
    351  
    352 // テーブル構成を取得する 
    353 function lfGetColumnList($table_name){ 
    354     $objQuery = new SC_Query(); 
    355  
    356     if(DB_TYPE == "pgsql"){ 
    357         $sql = "SELECT  
    358                     a.attname, t.typname, a.attnotnull, d.adsrc as defval, a.atttypmod, a.attnum as fldnum, e.description  
    359                 FROM  
    360                     pg_class c, 
    361                     pg_type t, 
    362                     pg_attribute a left join pg_attrdef d on (a.attrelid=d.adrelid and a.attnum=d.adnum) 
    363                                    left join pg_description e on (a.attrelid=e.objoid and a.attnum=e.objsubid) 
    364                 WHERE (c.relname=?) AND (c.oid=a.attrelid) AND (a.atttypid=t.oid) AND a.attnum > 0 
    365                 ORDER BY fldnum"; 
    366         $arrColList = $objQuery->getAll($sql, array($table_name)); 
    367         $arrColList = sfSwapArray($arrColList); 
    368          
    369         $arrRet['col_def'] = $arrColList['defval']; 
    370         $arrRet['col_name'] = $arrColList['attname']; 
    371     }else if(DB_TYPE == "mysql"){ 
    372         $sql = "SHOW COLUMNS FROM $table_name"; 
    373         $arrColList = $objQuery->getAll($sql); 
    374         $arrColList = sfSwapArray($arrColList); 
    375          
    376         $arrRet['col_def'] = $arrColList['Extra']; 
    377         $arrRet['col_name'] = $arrColList['Field']; 
    378     } 
    379     return $arrRet; 
    380 } 
    381  
    382 // 自動採番型の値を取得する 
    383 function lfGetAutoIncrementVal($table_name , $colname = ""){ 
    384     $objQuery = new SC_Query(); 
    385     $ret = ""; 
    386  
    387     if(DB_TYPE == "pgsql"){ 
    388         $ret = $objQuery->nextval($table_name, $colname) - 1; 
    389     }else if(DB_TYPE == "mysql"){ 
    390         $sql = "SHOW TABLE STATUS LIKE ?"; 
    391         $arrData = $objQuery->getAll($sql, array($table_name)); 
    392         $ret = $arrData[0]['Auto_increment']; 
    393     } 
    394     return $ret; 
    395 } 
    396  
    397 // バックアップテーブルにデータを更新する 
    398 function lfUpdBkupData($data){ 
    399     $objQuery = new SC_Query(); 
    400      
    401     $sql = "INSERT INTO dtb_bkup (bkup_name,bkup_memo,create_date) values (?,?,now())"; 
    402     $objQuery->query($sql, array($data['bkup_name'],$data['bkup_memo'])); 
    403 } 
    404  
    405 // バックアップテーブルからデータを取得する 
    406 function lfGetBkupData($where = "", $data = array()){ 
    407     $objQuery = new SC_Query(); 
    408      
    409     $sql = "SELECT bkup_name, bkup_memo, create_date FROM dtb_bkup "; 
    410     if ($where != "")   $sql .= $where; 
    411      
    412     $ret = $objQuery->getall($sql,$data); 
    413      
    414     return $ret; 
    415 } 
    416  
    417 // バックアップファイルをリストアする 
    418 function lfRestore($bkup_name){ 
    419     global $objPage; 
    420     $objQuery = new SC_Query("", false); 
    421     $csv_data = ""; 
    422     $err = true; 
    423      
    424     $bkup_dir = $objPage->bkup_dir . $bkup_name . "/"; 
    425      
    426     //バックアップフォルダに移動する 
    427     chdir($objPage->bkup_dir); 
    428      
    429     //圧縮フラグTRUEはgzip解凍をおこなう 
    430     $tar = new Archive_Tar($bkup_name . ".tar.gz", TRUE); 
    431      
    432     //指定されたフォルダ内に解凍する 
    433     $err = $tar->extract("./"); 
    434      
    435     // 無事解凍できれば、リストアを行う 
    436     if ($err) { 
    437          
    438         // トランザクション開始 
    439         $objQuery->begin(); 
    440          
    441         // DBをクリア 
    442         $err = lfDeleteAll($objQuery); 
    443          
    444         // INSERT実行 
    445         if ($err) $err = lfExeInsertSQL($objQuery, $bkup_dir . "bkup_data.csv"); 
    446  
    447         // 自動採番の値をセット 
    448         if ($err) lfSetAutoInc($objQuery, $bkup_dir . "autoinc_data.csv"); 
    449  
    450         // 各種ファイルのコピー 
    451         if ($err) { 
    452             // 画像のコピー 
    453             $image_dir = $bkup_dir . "save_image/"; 
    454             $copy_mess = ""; 
    455             $copy_mess = sfCopyDir($image_dir, "../../upload/save_image/", $copy_mess, true);        
    456      
    457             // テンプレートのコピー 
    458             $tmp_dir = $bkup_dir . "templates/"; 
    459             $copy_mess = ""; 
    460             $copy_mess = sfCopyDir($tmp_dir, "../../user_data/templates/", $copy_mess, true);        
    461              
    462             // インクルードファイルのコピー 
    463             $inc_dir = $bkup_dir . "include/"; 
    464             $copy_mess = ""; 
    465             $copy_mess = sfCopyDir($inc_dir, "../../user_data/include/", $copy_mess, true);      
    466              
    467             // CSSのコピー 
    468             $css_dir = $bkup_dir . "css/"; 
    469             $copy_mess = ""; 
    470             $copy_mess = sfCopyDir($css_dir, "../../user_data/css/", $copy_mess, true);      
    471  
    472             // バックアップデータの削除 
    473             sfDelFile($bkup_dir); 
    474         } 
    475  
    476         // リストア成功ならコミット失敗ならロールバック 
    477         if ($err) { 
    478             $objQuery->commit(); 
    479             $objPage->restore_msg = "リストア終了しました。"; 
    480             $objPage->restore_err = true; 
    481         }else{ 
    482             $objQuery->rollback(); 
    483             $objPage->restore_msg = "リストアに失敗しました。"; 
    484             $objPage->restore_name = $bkup_name; 
    485             $objPage->restore_err = false; 
    486         } 
    487     } 
    488 } 
    489  
    490 // CSVファイルからインサート実行 
    491 function lfExeInsertSQL($objQuery, $csv){ 
    492     global $objPage; 
    493  
    494     $sql = ""; 
    495     $base_sql = ""; 
    496     $tbl_flg = false; 
    497     $col_flg = false; 
    498     $ret = true; 
    499     $pagelayout_flg = false; 
    500     $mode = $objPage->mode; 
    501      
    502     // csvファイルからデータの取得 
    503     $fp = fopen($csv, "r"); 
    504     while (!feof($fp)) { 
    505         $data = fgetcsv($fp, 1000000); 
    506                  
    507         //空白行のときはテーブル変更 
    508         if (count($data) <= 1 and $data[0] == "") { 
    509             $base_sql = ""; 
    510             $tbl_flg = false; 
    511             $col_flg = false; 
    512             continue; 
    513         } 
    514          
    515         // テーブルフラグがたっていない場合にはテーブル名セット 
    516         if (!$tbl_flg) { 
    517             $base_sql = "INSERT INTO $data[0] "; 
    518             $tbl_flg = true; 
    519              
    520             if($data[0] == "dtb_pagelayout"){ 
    521                 $pagelayout_flg = true; 
    522             } 
    523              
    524             continue; 
    525         } 
    526          
    527         // カラムフラグがたっていない場合にはカラムセット 
    528         if (!$col_flg) { 
    529             if ($mode != "restore_config"){ 
    530                 $base_sql .= " ( $data[0] "; 
    531                 for($i = 1; $i < count($data); $i++){ 
    532                     $base_sql .= "," . $data[$i]; 
    533                 } 
    534                 $base_sql .= " ) "; 
    535             } 
    536             $col_flg = true; 
    537             continue; 
    538         } 
    539  
    540         // インサートする値をセット 
    541         $sql = $base_sql . "VALUES ( ? "; 
    542         for($i = 1; $i < count($data); $i++){ 
    543             $sql .= ", ?"; 
    544         } 
    545         $sql .= " );"; 
    546         $data = str_replace("\\\"", "\"", $data); 
    547         $err = $objQuery->query($sql, $data); 
    548  
    549         // エラーがあれば終了 
    550         if ($err->message != ""){ 
    551             sfErrorHeader(">> " . $objQuery->getlastquery(false)); 
    552             return false; 
    553         } 
    554          
    555         if ($pagelayout_flg) { 
    556             // dtb_pagelayoutの場合には最初のデータはpage_id = 0にする 
    557             $sql = "UPDATE dtb_pagelayout SET page_id = '0'"; 
    558             $objQuery->query($sql); 
    559             $pagelayout_flg = false; 
    560         } 
    561  
    562         // タイムアウトを防ぐ 
    563         sfFlush(); 
    564     } 
    565     fclose($fp); 
    566      
    567     return $ret; 
    568 } 
    569  
    570 // 自動採番をセット 
    571 function lfSetAutoInc($objQuery, $csv){ 
    572     // csvファイルからデータの取得 
    573     $arrCsvData = file($csv); 
    574  
    575     foreach($arrCsvData as $key => $val){ 
    576         $arrData = split(",", trim($val)); 
    577          
    578         if ($arrData[2] == 0)   $arrData[2] = 1; 
    579         $objQuery->setval($arrData[0], $arrData[1], $arrData[2]); 
    580     } 
    581 } 
    582  
    583 // DBを全てクリアする 
    584 function lfDeleteAll($objQuery){ 
    585     $ret = true; 
    586  
    587     $arrTableList = lfGetTableList(); 
    588      
    589     foreach($arrTableList as $key => $val){ 
    590         // バックアップテーブルは削除しない 
    591         if ($val != "dtb_bkup") { 
    592             $trun_sql = "DELETE FROM $val;"; 
    593             $ret = $objQuery->query($trun_sql); 
    594              
    595             if (!$ret) return $ret; 
    596         } 
    597     } 
    598      
    599     return $ret; 
    600 } 
    601  
    602 // バックアップテーブルを作成する 
    603 function lfCreateBkupTable(){ 
    604     $objQuery = new SC_Query(); 
    605      
    606     // テーブルの存在チェック 
    607     $arrTableList = lfGetTableList(); 
    608  
    609     if(!in_array("dtb_bkup", $arrTableList)){ 
    610         // 存在していなければ作成 
    611         $cre_sql = " 
    612             create table dtb_bkup 
    613             ( 
    614                 bkup_name   text, 
    615                 bkup_memo   text, 
    616                 create_date timestamp 
    617             ); 
    618         "; 
    619          
    620         $objQuery->query($cre_sql); 
    621     } 
    622 } 
    623  
     15$objPage = new LC_Page_Admin_System_Bkup_Ex(); 
     16$objPage->init(); 
     17$objPage->process(); 
     18register_shutdown_function(array($objPage, "destroy")); 
    62419?> 
Note: See TracChangeset for help on using the changeset viewer.