Linux ip-172-26-7-228 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 23 20:04:10 UTC 2023 x86_64
Your IP : 18.222.167.85
<?php
/*Author : Natesha
Date : 2009-07-13
Project : Frame Work
Description : This class is for to backup db
*/
//Start : 'backup_restore' Class
class backup_restore
{
//Start : Constructor
function __construct($aobj_context)
{
session_start();
$this->aobj_context=$aobj_context;
$aobj_context->mobj_db->SetFetchMode(ADODB_FETCH_ASSOC);
require_once($aobj_context->main_src."\src\employeeClass.php");
$this->obj_master=new employeeClass($aobj_context);
$this->obj_master->backup_setup();
$this->user_id = $_SESSION['user_id'];
}
//End : Constructor
/* This function is for to get market modules names*/
function getBackupDbList()
{
$get_target_db=" select internal_code,db_name as db,
company_name as Db_name from paycheck_system.company_setup_header order by company_name";
$lobj_get_target_db = $this->aobj_context->mobj_db->getAll($get_target_db);
$str_target_db=" <table align='center'width='40%' border='0' cellspacing='1' cellpadding='1'>";
$str_target_db.="<tr><td>";
$str_target_db="<table align='center' width='46%' border='0' cellpadding='' cellspacing=''>";
$str_target_db.="<tr>";
$str_target_db.="<td style='width:30px;'>";
$str_target_db.="<b> Check All </b><input type='checkbox' id='backup_db_check_all' onclick='getAllDbList()'>";
$str_target_db.="<b> Search </b><input type='text' id='backup_db_search' style='width:120px;' onKeyUp='getSearchDbList()'>";
$str_target_db.="<div style='overflow-y:scroll;overflow-y:auto;width:245px;height:227px;border:1px solid #cccccc;'>";
for($mdata = 0 ; $mdata < count($lobj_get_target_db) ; $mdata++)
{
$Db_name = $lobj_get_target_db[$mdata][Db_name];
$internal_code = $lobj_get_target_db[$mdata][internal_code];
$str_target_db.="<input type='checkbox' id = 'csr_db_{$internal_code}' name='{$internal_code}' /><label for='checkOption1'>{$Db_name}</label><br />";
}
$str_target_db.="</div></td>";
$str_target_db.="</tr></table>";
$str_target_db.="</td> </tr></table>";
$arr['html']=$str_target_db ;
$arr['db_names']=$lobj_get_target_db ;
return $arr;
}
function serachBackupdbList()
{
$get_target_db=" select internal_code,db_name as db,
company_name as Db_name from paycheck_system.company_setup_header where company_name like '{$this->search_value}%' ";
$lobj_get_target_db = $this->aobj_context->mobj_db->getAll($get_target_db);
$str_target_db=" <table align='center'width='40%' border='0' cellspacing='1' cellpadding='1'>";
$str_target_db.="<tr><td>";
$str_target_db="<table align='center' width='46%' border='0' cellpadding='' cellspacing=''>";
$str_target_db.="<tr>";
$str_target_db.="<td style='width:30px;'>";
$str_target_db.="<b> Check All </b><input type='checkbox' id='backup_db_check_all' onclick='getAllDbList()'>";
$str_target_db.="<b> Search </b><input type='text' id='backup_db_search' style='width:120px;' onKeyUp='getSearchDbList()'>";
$str_target_db.="<div style='overflow-y:scroll;overflow-y:auto;width:245px;height:227px;border:1px solid #cccccc;'>";
for($mdata = 0 ; $mdata < count($lobj_get_target_db) ; $mdata++)
{
$Db_name = $lobj_get_target_db[$mdata][Db_name];
$internal_code = $lobj_get_target_db[$mdata][internal_code];
$str_target_db.="<input type='checkbox' id = 'csr_db_{$internal_code}' name='{$internal_code}' /><label for='checkOption1'>{$Db_name}</label><br />";
}
$str_target_db.="</div></td>";
$str_target_db.="</tr></table>";
$str_target_db.="</td> </tr></table>";
$arr['html']=$str_target_db ;
$arr['db_names']=$lobj_get_target_db ;
$arr['search_value']=$this->search_value;
return $arr;
}
function createBackupDb()
{
$dbhost = "localhost";
$dbuser = "root";
$dbpass = "tarka";
if($dbpass == '')
$pass_field = "";
else
$pass_field = " -p";
$get_paths = "select internal_code,{$this->obj_master->backup_foder_path} as folder_path,
{$this->obj_master->backup_mysql_path} as mysql_path
from {$this->obj_master->backup_table} ";
$lobj_get_paths = $this->aobj_context->mobj_db->GetRow($get_paths);
$folder_path = $lobj_get_paths[folder_path];
$mysql_path = $lobj_get_paths[mysql_path];
for($back_db = 0 ;$back_db < count($this->larr_backup_db_data);$back_db++)
{
$db_name = $this->larr_backup_db_data[$back_db]->db_name;
$getdb_name = "select count(*) as count from information_schema.SCHEMATA
where schema_name='{$db_name}' ";
$lobj_getdb_name = $this->aobj_context->mobj_db->GetRow($getdb_name);
if($lobj_getdb_name[count] == 0)
return $db_name;
}
system(mkdir($folder_path.date("Ymd")));
$folder_path=$folder_path.date("Ymd")."\\";
for($back_db = 0 ;$back_db < count($this->larr_backup_db_data);$back_db++)
{
$db_name = $this->larr_backup_db_data[$back_db]->db_name;
$backupFile = $db_name .'_'. date("Ymd").'.sql';
$command = "{$mysql_path}mysqldump --opt -h {$dbhost} -u {$dbuser}{$pass_field}{$dbpass} {$db_name} > {$folder_path}{$backupFile}";
;
system(($command),$retval);
}
}
function restoreBackupDb()
{
$dbhost = "localhost";
$dbuser = "root";
$dbpass = "tarka";
if($dbpass == '')
$pass_field = "";
else
$pass_field = " -p";
$get_paths = "select internal_code,{$this->obj_master->backup_foder_path} as folder_path,
{$this->obj_master->backup_mysql_path} as mysql_path
from {$this->obj_master->backup_table} ";
$lobj_get_paths = $this->aobj_context->mobj_db->GetRow($get_paths);
$folder_path = $lobj_get_paths[folder_path];
$mysql_path = $lobj_get_paths[mysql_path];
for($back_db = 0 ;$back_db < count($this->larr_backup_db_data);$back_db++)
{
$db_name = $this->larr_backup_db_data[$back_db]->db_name;
$backupFile = $db_name .'_'. $this->inputdate.'.sql';
$file_path = $folder_path.$this->inputdate.'\\'.$backupFile;
if(!file_exists($file_path))
return $db_name;
}
for($back_db = 0 ;$back_db < count($this->larr_backup_db_data);$back_db++)
{
$db_name = $this->larr_backup_db_data[$back_db]->db_name;
$backupFile = $db_name .'_'. $this->inputdate.'.sql';
$file_path = $folder_path.$this->inputdate.'\\'.$backupFile;
if(file_exists($file_path))
{
$create_db = "create database if not exists {$db_name} ";
$lobj_create_db = $this->aobj_context->mobj_db->execute($create_db);
$command = "{$mysql_path}mysql -u $dbuser {$pass_field}{$dbpass} {$db_name} < {$file_path}";
system($command);
}
}
return 0;
}
}
//End : Class file
function getBackupDbList($aobj_context)
{
$class_obj=new backup_restore($aobj_context);
$db_list = $class_obj->getBackupDbList();
echo $aobj_context->mobj_output->ToJSONEnvelope($db_list,0,"Success");
}
function serachBackupdbList($aobj_context)
{
$class_obj=new backup_restore($aobj_context);
$class_obj->search_value = $aobj_context->mobj_data["search_value"];
$db_list = $class_obj->serachBackupdbList();
echo $aobj_context->mobj_output->ToJSONEnvelope($db_list,0,"Success");
}
function createBackupDb($aobj_context)
{
ini_set("memory_limit",-1);
ini_set('max_execution_time',2900);
$class_obj=new backup_restore($aobj_context);
$class_obj->backup_type = $aobj_context->mobj_data["type"];
$class_obj->backup_date = $aobj_context->mobj_data["date"];
include_once("/JSON.php");
$json = new Services_JSON();
$lstr_param_sal = stripslashes($aobj_context->mobj_data["backup_db_ids"]);
$mobj_jsondata_sal = $json->decode($lstr_param_sal);
$class_obj->larr_backup_db_data = get_object_vars($mobj_jsondata_sal);
if($class_obj->backup_type == 'BackUp')
{
$backup_db_result = $class_obj->createBackupDb();
if(!empty($backup_db_result))
{
$data = $backup_db_result . " Not found";
echo $aobj_context->mobj_output->ToJSONEnvelope($data,-1,"Success");
}
else if($backup_db_result == 0)
{
$data = "Database is dumped successfully";
echo $aobj_context->mobj_output->ToJSONEnvelope($data,0,"Success");
}
}
else if ($class_obj->backup_type == 'Restore')
{
$date_arr = explode('/',$class_obj->backup_date);
$day = $date_arr[0];
$month = $date_arr[1];
$year = $date_arr[2];
$class_obj->inputdate = $year.$month.$day;
$restore_db_result = $class_obj->restoreBackupDb();
if(!empty($restore_db_result))
{
$data = $restore_db_result . " database file not found";
echo $aobj_context->mobj_output->ToJSONEnvelope($data,-1,"Success");
}
else if($restore_db_result == 0)
{
$data = "Database is restored successfully";
echo $aobj_context->mobj_output->ToJSONEnvelope($data,0,"Success");
}
}
}
?>
|