Changeset 11730 for branches/comu/html/admin/system/bkup.php
- Timestamp:
- 2007/03/11 06:27:25 (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/comu/html/admin/system/bkup.php
r11729 r11730 8 8 require_once(DATA_PATH. "module/Tar.php"); 9 9 10 // ページ管理クラス10 //¥Ú¡¼¥¸´ÉÍý¥¯¥é¥¹ 11 11 class LC_Page { 12 // コンストラクタ12 //¥³¥ó¥¹¥È¥é¥¯¥¿ 13 13 function LC_Page() { 14 // メインテンプレートの指定14 //¥á¥¤¥ó¥Æ¥ó¥×¥ì¡¼¥È¤Î»ØÄê 15 15 $this->tpl_mainpage = 'system/bkup.tpl'; 16 16 $this->tpl_subnavi = 'system/subnavi.tpl'; 17 17 $this->tpl_mainno = 'system'; 18 18 $this->tpl_subno = 'bkup'; 19 $this->tpl_subtitle = ' バックアップ管理';19 $this->tpl_subtitle = '¥Ð¥Ã¥¯¥¢¥Ã¥×´ÉÍý'; 20 20 21 21 $this->bkup_dir = USER_PATH . "bkup/"; … … 27 27 $objQuery = new SC_Query(); 28 28 29 // セッションクラス29 // ¥»¥Ã¥·¥ç¥ó¥¯¥é¥¹ 30 30 $objSess = new SC_Session(); 31 // 認証可否の判定31 // ǧ¾Ú²ÄÈݤÎȽÄê 32 32 sfIsSuccess($objSess); 33 33 34 // バックアップテーブルがなければ作成する34 // ¥Ð¥Ã¥¯¥¢¥Ã¥×¥Æ¡¼¥Ö¥ë¤¬¤Ê¤±¤ì¤ÐºîÀ®¤¹¤ë 35 35 lfCreateBkupTable(); 36 36 37 37 switch($_POST['mode']) { 38 // バックアップを作成する38 // ¥Ð¥Ã¥¯¥¢¥Ã¥×¤òºîÀ®¤¹¤ë 39 39 case 'bkup': 40 // 入力文字列の変換40 // ÆþÎÏʸ»úÎó¤ÎÊÑ´¹ 41 41 $arrData = lfConvertParam($_POST); 42 42 43 // エラーチェック43 // ¥¨¥é¡¼¥Á¥§¥Ã¥¯ 44 44 $arrErr = lfCheckError($arrData); 45 45 46 // エラーがなければバックアップ処理を行う46 // ¥¨¥é¡¼¤¬¤Ê¤±¤ì¤Ð¥Ð¥Ã¥¯¥¢¥Ã¥×½èÍý¤ò¹Ô¤¦ 47 47 if (count($arrErr) <= 0) { 48 // バックアップファイル作成48 // ¥Ð¥Ã¥¯¥¢¥Ã¥×¥Õ¥¡¥¤¥ëºîÀ® 49 49 $arrErr = lfCreateBkupData($arrData['bkup_name']); 50 50 51 // DB にデータ更新51 // DB¤Ë¥Ç¡¼¥¿¹¹¿· 52 52 if (count($arrErr) <= 0) { 53 53 lfUpdBkupData($arrData); … … 56 56 } 57 57 58 $objPage->tpl_onload = "alert(' バックアップ完了しました');";58 $objPage->tpl_onload = "alert('¥Ð¥Ã¥¯¥¢¥Ã¥×´°Î»¤·¤Þ¤·¤¿');"; 59 59 }else{ 60 60 $arrForm = $arrData; … … 63 63 break; 64 64 65 // リストア65 // ¥ê¥¹¥È¥¢ 66 66 case 'restore': 67 67 case 'restore_config': … … 74 74 break; 75 75 76 // 削除76 // ºï½ü 77 77 case 'delete': 78 78 $del_file = $objPage->bkup_dir.$_POST['list_name'] . ".tar.gz"; 79 // ファイルの削除79 // ¥Õ¥¡¥¤¥ë¤Îºï½ü 80 80 if(is_file($del_file)){ 81 81 $ret = unlink($del_file); 82 82 } 83 83 84 // DB から削除84 // DB¤«¤éºï½ü 85 85 $delsql = "DELETE FROM dtb_bkup WHERE bkup_name = ?"; 86 86 $objQuery->query($delsql, array($_POST['list_name'])); … … 88 88 break; 89 89 90 // ダウンロード90 // ¥À¥¦¥ó¥í¡¼¥É 91 91 case 'download' : 92 92 $filename = $_POST['list_name'] . ".tar.gz"; 93 93 $dl_file = $objPage->bkup_dir.$_POST['list_name'] . ".tar.gz"; 94 94 95 // ダウンロード開始95 // ¥À¥¦¥ó¥í¡¼¥É³«»Ï 96 96 Header("Content-disposition: attachment; filename=${filename}"); 97 97 Header("Content-type: application/octet-stream; name=${filename}"); … … 105 105 } 106 106 107 // バックアップリストを取得する107 // ¥Ð¥Ã¥¯¥¢¥Ã¥×¥ê¥¹¥È¤ò¼èÆÀ¤¹¤ë 108 108 $arrBkupList = lfGetBkupData("ORDER BY create_date DESC"); 109 // テンプレートファイルに渡すデータをセット109 // ¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë¤ËÅϤ¹¥Ç¡¼¥¿¤ò¥»¥Ã¥È 110 110 $objPage->arrErr = $arrErr; 111 111 $objPage->arrForm = $arrForm; 112 112 $objPage->arrBkupList = $arrBkupList; 113 113 114 $objView->assignobj($objPage); // 変数をテンプレートにアサインする115 $objView->display(MAIN_FRAME); // テンプレートの出力114 $objView->assignobj($objPage); //ÊÑ¿ô¤ò¥Æ¥ó¥×¥ì¡¼¥È¤Ë¥¢¥µ¥¤¥ó¤¹¤ë 115 $objView->display(MAIN_FRAME); //¥Æ¥ó¥×¥ì¡¼¥È¤Î½ÐÎÏ 116 116 117 117 //------------------------------------------------------------------------------------------------------- 118 /* 取得文字列の変換*/118 /* ¼èÆÀʸ»úÎó¤ÎÊÑ´¹ */ 119 119 function lfConvertParam($array) { 120 120 /* 121 * 文字列の変換122 * K : 「半角(ハンカク)片仮名」を「全角片仮名」に変換123 * C : 「全角ひら仮名」を「全角かた仮名」に変換124 * V : 濁点付きの文字を一文字に変換。"K","H"と共に使用します125 * n : 「全角」数字を「半角(ハンカク)」に変換126 * a : 全角英数字を半角英数字に変換する121 * ʸ»úÎó¤ÎÊÑ´¹ 122 * K : ¡ÖȾ³Ñ(Êݶ¸)ÊÒ²¾Ì¾¡×¤ò¡ÖÁ´³ÑÊÒ²¾Ì¾¡×¤ËÊÑ´¹ 123 * C : ¡ÖÁ´³Ñ¤Ò¤é²¾Ì¾¡×¤ò¡ÖÁ´³Ñ¤«¤¿²¾Ì¾¡×¤ËÊÑ´¹ 124 * V : ÂùÅÀÉÕ¤¤Îʸ»ú¤ò°ìʸ»ú¤ËÊÑ´¹¡£"K","H"¤È¶¦¤Ë»ÈÍѤ·¤Þ¤¹ 125 * n : ¡ÖÁ´³Ñ¡×¿ô»ú¤ò¡ÖȾ³Ñ(Êݶ¸)¡×¤ËÊÑ´¹ 126 * a : Á´³Ñ±Ñ¿ô»ú¤òȾ³Ñ±Ñ¿ô»ú¤ËÊÑ´¹¤¹¤ë 127 127 */ 128 128 $arrConvList['bkup_name'] = "a"; 129 129 $arrConvList['bkup_memo'] = "KVa"; 130 130 131 // 文字変換131 // ʸ»úÊÑ´¹ 132 132 foreach ($arrConvList as $key => $val) { 133 // POST されてきた値のみ変換する。133 // POST¤µ¤ì¤Æ¤¤¿ÃͤΤßÊÑ´¹¤¹¤ë¡£ 134 134 if(isset($array[$key])) { 135 135 $array[$key] = mb_convert_kana($array[$key] ,$val); … … 139 139 } 140 140 141 // エラーチェック141 // ¥¨¥é¡¼¥Á¥§¥Ã¥¯ 142 142 function lfCheckError($array){ 143 143 $objErr = new SC_CheckError($array); 144 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 // 重複チェック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 149 $ret = lfGetBkupData("WHERE bkup_name = ?", array($array['bkup_name'])); 150 150 if (count($ret) > 0) { 151 $objErr->arrErr['bkup_name'] = " バックアップ名が重複しています。別名を入力してください。";151 $objErr->arrErr['bkup_name'] = "¥Ð¥Ã¥¯¥¢¥Ã¥×̾¤¬½ÅÊ£¤·¤Æ¤¤¤Þ¤¹¡£ÊÌ̾¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£"; 152 152 } 153 153 … … 155 155 } 156 156 157 // バックアップファイル作成157 // ¥Ð¥Ã¥¯¥¢¥Ã¥×¥Õ¥¡¥¤¥ëºîÀ® 158 158 function lfCreateBkupData($bkup_name){ 159 159 global $objPage; … … 167 167 $bkup_dir = $bkup_dir . $bkup_name . "/"; 168 168 169 // 全テーブル取得169 // Á´¥Æ¡¼¥Ö¥ë¼èÆÀ 170 170 $arrTableList = lfGetTableList(); 171 171 172 // 各テーブル情報を取得する172 // ³Æ¥Æ¡¼¥Ö¥ë¾ðÊó¤ò¼èÆÀ¤¹¤ë 173 173 foreach($arrTableList as $key => $val){ 174 174 175 175 if ($val != "dtb_bkup") { 176 176 177 // 自動採番型の構成を取得する177 // ¼«Æ°ºÎÈÖ·¿¤Î¹½À®¤ò¼èÆÀ¤¹¤ë 178 178 $csv_autoinc .= lfGetAutoIncrement($val); 179 179 180 // 全データを取得180 // Á´¥Ç¡¼¥¿¤ò¼èÆÀ 181 181 if ($val == "dtb_pagelayout"){ 182 182 $arrData = $objQuery->getAll("SELECT * FROM $val ORDER BY page_id"); … … 185 185 } 186 186 187 // CSV データ生成187 // CSV¥Ç¡¼¥¿À¸À® 188 188 if (count($arrData) > 0) { 189 189 190 // カラムをCSV形式に整える190 // ¥«¥é¥à¤òCSV·Á¼°¤ËÀ°¤¨¤ë 191 191 $arrKyes = sfGetCommaList(array_keys($arrData[0]), false); 192 192 193 // データをCSV形式に整える193 // ¥Ç¡¼¥¿¤òCSV·Á¼°¤ËÀ°¤¨¤ë 194 194 $data = ""; 195 195 foreach($arrData as $data_key => $data_val){ … … 198 198 199 199 } 200 // CSV 出力データ生成200 // CSV½ÐÎϥǡ¼¥¿À¸À® 201 201 $csv_data .= $val . "\n"; 202 202 $csv_data .= $arrKyes . "\n"; … … 205 205 } 206 206 207 // タイムアウトを防ぐ207 // ¥¿¥¤¥à¥¢¥¦¥È¤òËɤ° 208 208 sfFlush(); 209 209 } … … 213 213 $csv_autoinc_file = $bkup_dir . "autoinc_data.csv"; 214 214 mb_internal_encoding(CHAR_CODE); 215 // CSV 出力216 // ディレクトリが存在していなければ作成する215 // CSV½ÐÎÏ 216 // ¥Ç¥£¥ì¥¯¥È¥ê¤¬Â¸ºß¤·¤Æ¤¤¤Ê¤±¤ì¤ÐºîÀ®¤¹¤ë 217 217 if (!is_dir(dirname($csv_file))) { 218 218 $err = mkdir(dirname($csv_file)); 219 219 } 220 220 if ($err) { 221 // data をCSV出力221 // data¤òCSV½ÐÎÏ 222 222 $fp = fopen($csv_file,"w"); 223 223 if($fp) { … … 228 228 } 229 229 230 // 自動採番をCSV出力230 // ¼«Æ°ºÎÈÖ¤òCSV½ÐÎÏ 231 231 $fp = fopen($csv_autoinc_file,"w"); 232 232 if($fp) { … … 238 238 } 239 239 240 // 各種ファイルコピー240 // ³Æ¼ï¥Õ¥¡¥¤¥ë¥³¥Ô¡¼ 241 241 if ($err) { 242 // 商品画像ファイルをコピー243 // ディレクトリが存在していなければ作成する242 // ¾¦ÉʲèÁü¥Õ¥¡¥¤¥ë¤ò¥³¥Ô¡¼ 243 // ¥Ç¥£¥ì¥¯¥È¥ê¤¬Â¸ºß¤·¤Æ¤¤¤Ê¤±¤ì¤ÐºîÀ®¤¹¤ë 244 244 $image_dir = $bkup_dir . "save_image/"; 245 245 if (!is_dir(dirname($image_dir))) $err = mkdir(dirname($image_dir)); … … 247 247 $copy_mess = sfCopyDir("../../upload/save_image/",$image_dir, $copy_mess); 248 248 249 // テンプレートファイルをコピー250 // ディレクトリが存在していなければ作成する249 // ¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë¤ò¥³¥Ô¡¼ 250 // ¥Ç¥£¥ì¥¯¥È¥ê¤¬Â¸ºß¤·¤Æ¤¤¤Ê¤±¤ì¤ÐºîÀ®¤¹¤ë 251 251 $templates_dir = $bkup_dir . "templates/"; 252 252 if (!is_dir(dirname($templates_dir))) $err = mkdir(dirname($templates_dir)); … … 254 254 $copy_mess = sfCopyDir("../../user_data/templates/",$templates_dir, $copy_mess); 255 255 256 // インクルードファイルをコピー257 // ディレクトリが存在していなければ作成する256 // ¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤ò¥³¥Ô¡¼ 257 // ¥Ç¥£¥ì¥¯¥È¥ê¤¬Â¸ºß¤·¤Æ¤¤¤Ê¤±¤ì¤ÐºîÀ®¤¹¤ë 258 258 $inc_dir = $bkup_dir . "include/"; 259 259 if (!is_dir(dirname($inc_dir))) $err = mkdir(dirname($inc_dir)); … … 261 261 $copy_mess = sfCopyDir("../../user_data/include/",$inc_dir, $copy_mess); 262 262 263 // CSS ファイルをコピー264 // ディレクトリが存在していなければ作成する263 // CSS¥Õ¥¡¥¤¥ë¤ò¥³¥Ô¡¼ 264 // ¥Ç¥£¥ì¥¯¥È¥ê¤¬Â¸ºß¤·¤Æ¤¤¤Ê¤±¤ì¤ÐºîÀ®¤¹¤ë 265 265 $css_dir = $bkup_dir . "css/"; 266 266 if (!is_dir(dirname($css_dir))) $err = mkdir(dirname($css_dir)); … … 268 268 $copy_mess = sfCopyDir("../../user_data/css/",$css_dir, $copy_mess); 269 269 270 // 圧縮フラグTRUEはgzip圧縮をおこなう270 //°µ½Ì¥Õ¥é¥°TRUE¤Ïgzip°µ½Ì¤ò¤ª¤³¤Ê¤¦ 271 271 $tar = new Archive_Tar($objPage->bkup_dir . $bkup_name.".tar.gz", TRUE); 272 272 273 //bkup フォルダに移動する273 //bkup¥Õ¥©¥ë¥À¤Ë°ÜÆ°¤¹¤ë 274 274 chdir($objPage->bkup_dir); 275 275 276 // 圧縮をおこなう276 //°µ½Ì¤ò¤ª¤³¤Ê¤¦ 277 277 $zip = $tar->create("./" . $bkup_name . "/"); 278 278 279 // バックアップデータの削除279 // ¥Ð¥Ã¥¯¥¢¥Ã¥×¥Ç¡¼¥¿¤Îºï½ü 280 280 if ($zip) sfDelFile($bkup_dir); 281 281 } 282 282 283 283 if (!$err) { 284 $arrErr['bkup_name'] = " バックアップに失敗しました。";285 // バックアップデータの削除284 $arrErr['bkup_name'] = "¥Ð¥Ã¥¯¥¢¥Ã¥×¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£"; 285 // ¥Ð¥Ã¥¯¥¢¥Ã¥×¥Ç¡¼¥¿¤Îºï½ü 286 286 sfDelFile($bkup_dir); 287 287 } … … 290 290 } 291 291 292 /* 配列の要素をCSVフォーマットで出力する。*/292 /* ÇÛÎó¤ÎÍ×ÁǤòCSV¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç½ÐÎϤ¹¤ë¡£*/ 293 293 function lfGetCSVList($array) { 294 294 if (count($array) > 0) { … … 305 305 } 306 306 307 // 全テーブルリストを取得する307 // Á´¥Æ¡¼¥Ö¥ë¥ê¥¹¥È¤ò¼èÆÀ¤¹¤ë 308 308 function lfGetTableList(){ 309 309 $objQuery = new SC_Query(); … … 319 319 $arrRet = sfSwapArray($arrRet); 320 320 321 // キーを取得321 // ¥¡¼¤ò¼èÆÀ 322 322 $arrKey = array_keys($arrRet); 323 323 … … 327 327 } 328 328 329 // 自動採番型をCSV出力形式に変換する329 // ¼«Æ°ºÎÈÖ·¿¤òCSV½ÐÎÏ·Á¼°¤ËÊÑ´¹¤¹¤ë 330 330 function lfGetAutoIncrement($table_name){ 331 331 $arrColList = lfGetColumnList($table_name); … … 350 350 } 351 351 352 // テーブル構成を取得する352 // ¥Æ¡¼¥Ö¥ë¹½À®¤ò¼èÆÀ¤¹¤ë 353 353 function lfGetColumnList($table_name){ 354 354 $objQuery = new SC_Query(); … … 380 380 } 381 381 382 // 自動採番型の値を取得する382 // ¼«Æ°ºÎÈÖ·¿¤ÎÃͤò¼èÆÀ¤¹¤ë 383 383 function lfGetAutoIncrementVal($table_name , $colname = ""){ 384 384 $objQuery = new SC_Query(); … … 395 395 } 396 396 397 // バックアップテーブルにデータを更新する397 // ¥Ð¥Ã¥¯¥¢¥Ã¥×¥Æ¡¼¥Ö¥ë¤Ë¥Ç¡¼¥¿¤ò¹¹¿·¤¹¤ë 398 398 function lfUpdBkupData($data){ 399 399 $objQuery = new SC_Query(); … … 403 403 } 404 404 405 // バックアップテーブルからデータを取得する405 // ¥Ð¥Ã¥¯¥¢¥Ã¥×¥Æ¡¼¥Ö¥ë¤«¤é¥Ç¡¼¥¿¤ò¼èÆÀ¤¹¤ë 406 406 function lfGetBkupData($where = "", $data = array()){ 407 407 $objQuery = new SC_Query(); … … 415 415 } 416 416 417 // バックアップファイルをリストアする417 // ¥Ð¥Ã¥¯¥¢¥Ã¥×¥Õ¥¡¥¤¥ë¤ò¥ê¥¹¥È¥¢¤¹¤ë 418 418 function lfRestore($bkup_name){ 419 419 global $objPage; … … 424 424 $bkup_dir = $objPage->bkup_dir . $bkup_name . "/"; 425 425 426 // バックアップフォルダに移動する426 //¥Ð¥Ã¥¯¥¢¥Ã¥×¥Õ¥©¥ë¥À¤Ë°ÜÆ°¤¹¤ë 427 427 chdir($objPage->bkup_dir); 428 428 429 // 圧縮フラグTRUEはgzip解凍をおこなう429 //°µ½Ì¥Õ¥é¥°TRUE¤Ïgzip²òÅà¤ò¤ª¤³¤Ê¤¦ 430 430 $tar = new Archive_Tar($bkup_name . ".tar.gz", TRUE); 431 431 432 // 指定されたフォルダ内に解凍する432 //»ØÄꤵ¤ì¤¿¥Õ¥©¥ë¥ÀÆâ¤Ë²òÅह¤ë 433 433 $err = $tar->extract("./"); 434 434 435 // 無事解凍できれば、リストアを行う435 // ̵»ö²òÅà¤Ç¤¤ì¤Ð¡¢¥ê¥¹¥È¥¢¤ò¹Ô¤¦ 436 436 if ($err) { 437 437 438 // トランザクション開始438 // ¥È¥é¥ó¥¶¥¯¥·¥ç¥ó³«»Ï 439 439 $objQuery->begin(); 440 440 441 // DB をクリア441 // DB¤ò¥¯¥ê¥¢ 442 442 $err = lfDeleteAll($objQuery); 443 443 444 // INSERT 実行444 // INSERT¼Â¹Ô 445 445 if ($err) $err = lfExeInsertSQL($objQuery, $bkup_dir . "bkup_data.csv"); 446 446 447 // 自動採番の値をセット447 // ¼«Æ°ºÎÈÖ¤ÎÃͤò¥»¥Ã¥È 448 448 if ($err) lfSetAutoInc($objQuery, $bkup_dir . "autoinc_data.csv"); 449 449 450 // 各種ファイルのコピー450 // ³Æ¼ï¥Õ¥¡¥¤¥ë¤Î¥³¥Ô¡¼ 451 451 if ($err) { 452 // 画像のコピー452 // ²èÁü¤Î¥³¥Ô¡¼ 453 453 $image_dir = $bkup_dir . "save_image/"; 454 454 $copy_mess = ""; 455 455 $copy_mess = sfCopyDir($image_dir, "../../upload/save_image/", $copy_mess, true); 456 456 457 // テンプレートのコピー457 // ¥Æ¥ó¥×¥ì¡¼¥È¤Î¥³¥Ô¡¼ 458 458 $tmp_dir = $bkup_dir . "templates/"; 459 459 $copy_mess = ""; 460 460 $copy_mess = sfCopyDir($tmp_dir, "../../user_data/templates/", $copy_mess, true); 461 461 462 // インクルードファイルのコピー462 // ¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤Î¥³¥Ô¡¼ 463 463 $inc_dir = $bkup_dir . "include/"; 464 464 $copy_mess = ""; 465 465 $copy_mess = sfCopyDir($inc_dir, "../../user_data/include/", $copy_mess, true); 466 466 467 // CSS のコピー467 // CSS¤Î¥³¥Ô¡¼ 468 468 $css_dir = $bkup_dir . "css/"; 469 469 $copy_mess = ""; 470 470 $copy_mess = sfCopyDir($css_dir, "../../user_data/css/", $copy_mess, true); 471 471 472 // バックアップデータの削除472 // ¥Ð¥Ã¥¯¥¢¥Ã¥×¥Ç¡¼¥¿¤Îºï½ü 473 473 sfDelFile($bkup_dir); 474 474 } 475 475 476 // リストア成功ならコミット失敗ならロールバック476 // ¥ê¥¹¥È¥¢À®¸ù¤Ê¤é¥³¥ß¥Ã¥È¼ºÇԤʤé¥í¡¼¥ë¥Ð¥Ã¥¯ 477 477 if ($err) { 478 478 $objQuery->commit(); 479 $objPage->restore_msg = " リストア終了しました。";479 $objPage->restore_msg = "¥ê¥¹¥È¥¢½ªÎ»¤·¤Þ¤·¤¿¡£"; 480 480 $objPage->restore_err = true; 481 481 }else{ 482 482 $objQuery->rollback(); 483 $objPage->restore_msg = " リストアに失敗しました。";483 $objPage->restore_msg = "¥ê¥¹¥È¥¢¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£"; 484 484 $objPage->restore_name = $bkup_name; 485 485 $objPage->restore_err = false; … … 488 488 } 489 489 490 // CSV ファイルからインサート実行490 // CSV¥Õ¥¡¥¤¥ë¤«¤é¥¤¥ó¥µ¡¼¥È¼Â¹Ô 491 491 function lfExeInsertSQL($objQuery, $csv){ 492 492 global $objPage; … … 500 500 $mode = $objPage->mode; 501 501 502 // csv ファイルからデータの取得502 // csv¥Õ¥¡¥¤¥ë¤«¤é¥Ç¡¼¥¿¤Î¼èÆÀ 503 503 $fp = fopen($csv, "r"); 504 504 while (!feof($fp)) { 505 505 $data = fgetcsv($fp, 1000000); 506 506 507 // 空白行のときはテーブル変更507 //¶õÇò¹Ô¤Î¤È¤¤Ï¥Æ¡¼¥Ö¥ëÊѹ¹ 508 508 if (count($data) <= 1 and $data[0] == "") { 509 509 $base_sql = ""; … … 513 513 } 514 514 515 // テーブルフラグがたっていない場合にはテーブル名セット515 // ¥Æ¡¼¥Ö¥ë¥Õ¥é¥°¤¬¤¿¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï¥Æ¡¼¥Ö¥ë̾¥»¥Ã¥È 516 516 if (!$tbl_flg) { 517 517 $base_sql = "INSERT INTO $data[0] "; … … 525 525 } 526 526 527 // カラムフラグがたっていない場合にはカラムセット527 // ¥«¥é¥à¥Õ¥é¥°¤¬¤¿¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï¥«¥é¥à¥»¥Ã¥È 528 528 if (!$col_flg) { 529 529 if ($mode != "restore_config"){ … … 538 538 } 539 539 540 // インサートする値をセット540 // ¥¤¥ó¥µ¡¼¥È¤¹¤ëÃͤò¥»¥Ã¥È 541 541 $sql = $base_sql . "VALUES ( ? "; 542 542 for($i = 1; $i < count($data); $i++){ … … 547 547 $err = $objQuery->query($sql, $data); 548 548 549 // エラーがあれば終了549 // ¥¨¥é¡¼¤¬¤¢¤ì¤Ð½ªÎ» 550 550 if ($err->message != ""){ 551 551 sfErrorHeader(">> " . $objQuery->getlastquery(false)); … … 554 554 555 555 if ($pagelayout_flg) { 556 // dtb_pagelayout の場合には最初のデータはpage_id = 0にする556 // dtb_pagelayout¤Î¾ì¹ç¤Ë¤ÏºÇ½é¤Î¥Ç¡¼¥¿¤Ïpage_id = 0¤Ë¤¹¤ë 557 557 $sql = "UPDATE dtb_pagelayout SET page_id = '0'"; 558 558 $objQuery->query($sql); … … 560 560 } 561 561 562 // タイムアウトを防ぐ562 // ¥¿¥¤¥à¥¢¥¦¥È¤òËɤ° 563 563 sfFlush(); 564 564 } … … 568 568 } 569 569 570 // 自動採番をセット570 // ¼«Æ°ºÎÈÖ¤ò¥»¥Ã¥È 571 571 function lfSetAutoInc($objQuery, $csv){ 572 // csv ファイルからデータの取得572 // csv¥Õ¥¡¥¤¥ë¤«¤é¥Ç¡¼¥¿¤Î¼èÆÀ 573 573 $arrCsvData = file($csv); 574 574 … … 581 581 } 582 582 583 // DB を全てクリアする583 // DB¤òÁ´¤Æ¥¯¥ê¥¢¤¹¤ë 584 584 function lfDeleteAll($objQuery){ 585 585 $ret = true; … … 588 588 589 589 foreach($arrTableList as $key => $val){ 590 // バックアップテーブルは削除しない590 // ¥Ð¥Ã¥¯¥¢¥Ã¥×¥Æ¡¼¥Ö¥ë¤Ïºï½ü¤·¤Ê¤¤ 591 591 if ($val != "dtb_bkup") { 592 592 $trun_sql = "DELETE FROM $val;"; … … 600 600 } 601 601 602 // バックアップテーブルを作成する602 // ¥Ð¥Ã¥¯¥¢¥Ã¥×¥Æ¡¼¥Ö¥ë¤òºîÀ®¤¹¤ë 603 603 function lfCreateBkupTable(){ 604 604 $objQuery = new SC_Query(); 605 605 606 // テーブルの存在チェック606 // ¥Æ¡¼¥Ö¥ë¤Î¸ºß¥Á¥§¥Ã¥¯ 607 607 $arrTableList = lfGetTableList(); 608 608 609 609 if(!in_array("dtb_bkup", $arrTableList)){ 610 // 存在していなければ作成610 // ¸ºß¤·¤Æ¤¤¤Ê¤±¤ì¤ÐºîÀ® 611 611 $cre_sql = " 612 612 create table dtb_bkup
Note: See TracChangeset
for help on using the changeset viewer.