File: /home/cafsindia/hrms_cafsinfotech_in/application/controllers/Dynamic_db.php
<?php if ( ! defined('BASEPATH')) exit('No direct script is allowed');
require_once("Action_controller.php");
class Dynamic_db extends Action_controller{
public function __construct(){
parent::__construct('dynamic_db');
if(!$this->Appconfig->isAppvalid()){
redirect('config');
}
}
// LOAD PAGE WITH TABLE DATA
public function index(){
$data['key'] = $this->generateKey();
$this->load->view("$this->control_name/manage",$data);
}
//Dunamic db updated
public function db_config(){
$encString = file_get_contents('php://input');
$_POST = $this->cryptoDecrypt($encString);
if(!$_POST){
echo json_encode(array('success' => false,'message' => 'Url Expired.. Please refresh the page and try again....','table_data' => ""));
exit(0);
}
$hostname = $this->input->post('hostname');
$port = $this->input->post('port');
$username = $this->input->post('username');
$password = $this->input->post('password');
$database = $this->input->post('database');
$db_info = array('hostname' => $hostname,'username' => $username,'password' => $password,'database' => $database,'port' => $port);
mysqli_report(MYSQLI_REPORT_OFF);
$link = mysqli_connect($db_info['hostname'],$db_info['username'],$db_info['password'],$db_info['database'],(int)$db_info['port']);
if(!$link){
echo json_encode(['success' => false,'msg' => mysqli_connect_error()]);
exit;
}else{
$write_text = "<?php
defined('BASEPATH') OR exit('No direct script access allowed');
\$active_group = 'default';
\$query_builder = TRUE;
\$db['default'] = array(
'dsn' => '',
'hostname' => '$hostname',
'username' => '$username',
'password' => '$password',
'database' => '$database',
'dbdriver' => 'mysqli',
'dbprefix' => 'cw_',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE,
'port' => '$port'
);";
/** SATHISH START **/
$app_db_text = "<?php \n\t class dbconnect {
//MSSQL
protected \$db;
//MSSQL
protected \$sql_db;
protected \$host;
protected \$username;
protected \$password;
protected \$database;
protected \$port;
public function open_db(){
define('BASEPATH', true);
define('ENVIRONMENT', 'production');
require_once __DIR__ . '/../application/config/database.php';
\$this->host = \$db['default']['hostname'];
\$this->username = \$db['default']['username'];
\$this->password = \$db['default']['password'];
\$this->database = \$db['default']['database'];
\$this->port = \$db['default']['port'];
\$this->db = new mysqli(\$this->host, \$this->username, \$this->password, \$this->database, \$this->port);
if(mysqli_connect_errno()){
return false;
}else{
return true;
}
}
public function runQuery(\$query){
\$result = mysqli_query(\$this->db,\$query);
if(!\$result){
echo('Error description: '.mysqli_error(\$this->db).'<br/>');
return false;
}else{
return \$result;
}
}
public function result(\$result){
\$data = array();
while (\$obj = mysqli_fetch_object(\$result)) {
if(\$obj){
\$data[] = \$obj;
}
}
return \$data;
}
public function result_array(\$result){
\$data = array();
while (\$obj = mysqli_fetch_assoc(\$result)) {
if(\$obj){
\$data[] = \$obj;
}
}
return \$data;
}
public function runQuery_insert_id(\$query) {
\$result = mysqli_query(\$this->db,\$query);
\$insert_id = \$this->db->insert_id;
if(!\$result){
echo('Error description: '.mysqli_error(\$this->db).'<br/>');
return false;
}else{
return \$insert_id;
}
}
public function num_rows(\$result){
return mysqli_num_rows(\$result);
}
public function close_db(){
mysqli_close(\$this->db);
}
public function sql_runQuery(\$query) {
\$result = sqlsrv_query(\$this->sql_db,\$query);
if(!\$result){
echo('Error description: '.sqlsrv_errors(\$this->sql_db).'<br/>');
return false;
}else{
return \$result;
}
}
public function sql_result(\$result){
\$data = array();
while (\$obj = sqlsrv_fetch_object(\$result)){
if(\$obj){
\$data[] = \$obj;
}
}
return \$data;
}
//SQL Functions
public function sql_open_db(){
define('BASEPATH', true);
require_once __DIR__ . '/../application/config/database.php';
\$this->sql_host = \$db['default']['sql_hostname'];
\$this->sql_database = \$db['default']['sql_database'];
\$this->sql_db = sqlsrv_connect(\$this->sql_host, array( 'Database'=>\$this->sql_database));
if(\$this->sql_db === false ) {
return false;
}else{
return true;
}
}
} \n\t ?>";
// FILE PATH TO OVERWRITE THE CONTENT
$database_file_name = APPPATH . 'config/database.php';
$app_db_filename = FCPATH . 'app/dbconnect.php';
// ================ APP DBCONNECT ==================
chmod($app_db_filename, 0777);
$app_file = fopen($app_db_filename, "w");
fwrite($app_file, $app_db_text);
fclose($app_file);
chmod($app_db_filename, 0644);
// ================== DATABASE =====================
chmod($database_file_name, 0777);
$file = fopen($database_file_name, "w");
fwrite($file, $write_text);
fclose($file);
chmod($database_file_name, 0644);
$message = "DB update successfully!!!";
$this->session->sess_destroy();
echo json_encode(array('success'=>True,'msg'=>$message));
}
}
}
?>