Current File : /home/inlingua/public_html/sensoriumpsychologists.com/diagnostics/franchise_back/database_func.php
<?php
require_once("connection.php");
class mysql_functions_class
{
	private $new_conn,$detail,$last_insert_id;
	public function __destruct()
	{
		$this->close_connection();
	}
	public function __construct()
	{
		$this->last_insert_id="";
	}
	public function open_connection()
	{
		global $host_db,$user_db,$pass_db,$name_db;
		$this->new_conn = new mysqli($host_db,$user_db,$pass_db,$name_db);
		if ($this->new_conn->connect_errno)
		{
			echo("COULD NOT CONNECT TO THE SERVER.....TRY AGAIN LATER");
			exit();
		}
		$this->new_conn->query("SET time_zone = '+05:30'");
	}
	public function start_transaction()
	{
		$this->new_conn->query("START TRANSACTION");
	}
	public function commit()
	{
		$this->new_conn->commit();
	}
	public function rollback()
	{
		$this->new_conn->rollback();
	}
	public function affected_rows()
	{
		return $this->new_conn->affected_rows;
	}
	public function get_value($variable_name)
	{
		$to_return="";
		switch($variable_name)
		{	
		case 'last_insert_id':$to_return=$this->last_insert_id;break;
		}
		return $to_return;
	}

	public function close_connection()
	{
		if(isset($this->new_conn))
		{
			$this->new_conn->rollback();
			$this->new_conn->close();
			unset($this->new_conn);
		}
	}
	
	public function real_escape($to_change)
	{
		$to_change=$this->new_conn->real_escape_string($to_change);
		return $to_change;
	}
	
	public function insert_simple($columns_array,$values_array,$table_name)
	{
		$prepared_statement="INSERT INTO $table_name";
		$total_elements=count($columns_array);
		$last=$total_elements-1;
		for($i=0;$i<$total_elements;$i++)
		{
			if($i==0)
			{
				$prepared_statement.="(".$columns_array[$i];
			}
			else
			{
				$prepared_statement.=",".$columns_array[$i];
			}
			if($i==$last)
			{
				$prepared_statement.=")";
			}
		}
		$prepared_statement.=" VALUES";
		for($i=0;$i<$total_elements;$i++)
		{
			$values_array[$i]=$this->new_conn->real_escape_string($values_array[$i]);
			if($i==0)
			{
				$prepared_statement.="('".$values_array[$i]."'";
			}
			else
			{
				$prepared_statement.=",'".$values_array[$i]."'";
			}
			if($i==$last)
			{
				$prepared_statement.=")";
			}
		}
		$this->open_connection();
		//echo $prepared_statement;
		//echo $result=$this->conn->query($prepared_statement);
		if(!($this->new_conn->query($prepared_statement)))
		{
			$this->close_connection();
			echo("Error : Invalid code...");
			exit();
		}
		else
		{
			$this->last_insert_id=$this->new_conn->insert_id;
		}
	}
	public function qry_insert($table,$data){
			 $fields = array_keys($data );  
			 $values = array_values( $data );
			 $sql="INSERT INTO $table(".implode(",",$fields).") VALUES ('".implode("','", $values )."')";
			 //echo $sql;//die;
			 $result=$this->conn->query($sql);
			 return $result;

		}	
	public function insert_simple_for_transaction($columns_array,$values_array,$table_name)
	{
		$prepared_statement="INSERT INTO $table_name";
		$total_elements=count($columns_array);
		$last=$total_elements-1;
		for($i=0;$i<$total_elements;$i++)
		{
			if($i==0)
			{
				$prepared_statement.="(".$columns_array[$i];
			}
			else
			{
				$prepared_statement.=",".$columns_array[$i];
			}
			if($i==$last)
			{
				$prepared_statement.=")";
			}
		}
		$prepared_statement.=" VALUES";
		for($i=0;$i<$total_elements;$i++)
		{
			$values_array[$i]=$this->new_conn->real_escape_string($values_array[$i]);
			if($i==0)
			{
				$prepared_statement.="('".$values_array[$i]."'";
			}
			else
			{
				$prepared_statement.=",'".$values_array[$i]."'";
			}
			if($i==$last)
			{
				$prepared_statement.=")";
			}
		}
		$this->open_connection();
		//echo $prepared_statement;
		if(!($this->new_conn->query($prepared_statement)))
		{
			$this->rollback();
			$this->close_connection();
			echo("Error : Invalid code...");
			exit();
		}
		else
		{
			$this->last_insert_id=$this->new_conn->insert_id;
		}
	}
	
	public function update_simple($columns_array,$values_array,$table_name,$conditions)
	{
		$columns_total_elements=count($columns_array);
		$values_total_elements=count($values_array);
		if($columns_total_elements!=$values_total_elements)
		{
			$this->close_connection();
			echo("Error : Invalid code...(Error Code : 2)");
			exit();
		}
		
		$prepared_statement="UPDATE $table_name SET ";
		for($i=0;$i<$columns_total_elements;$i++)
		{
			$values_array[$i]=$this->new_conn->real_escape_string($values_array[$i]);
			if($i==0)
			{
				$prepared_statement.=$columns_array[$i]."='".$values_array[$i]."'";
			}
			else
			{
				$prepared_statement.=",".$columns_array[$i]."='".$values_array[$i]."'";
			}
		}
		$prepared_statement.=" ".$conditions;
		//echo $prepared_statement; exit;
		$this->new_conn->query($prepared_statement);
	}
	public function select_for_report($table_name,$columns_array,$conditions,$sort_by,$sort_order,$per_page,$start,&$total="")
	{
		$prepared_statement="SELECT SQL_CALC_FOUND_ROWS ";
		for($i=0;$i<count($columns_array);$i++)
		{
			if($i==0)
			{
				$prepared_statement.=$columns_array[$i];
			}
			else
			{
				$prepared_statement.=",".$columns_array[$i];
			}
		}
		$prepared_statement.=" FROM $table_name $conditions ORDER BY $sort_by $sort_order LIMIT $start,$per_page";
		if(!($res=$this->new_conn->query($prepared_statement)))
		{
			$this->close_connection();
			echo("Error : Invalid filters 1...".$prepared_statement);
			exit();
		}
		$res_total=$this->new_conn->query("SELECT FOUND_ROWS() AS total");
		$detail_total=$res_total->fetch_assoc();
		$total=$detail_total['total'];
		return $res;
	}
	public function select_simple($table_name,$columns_array,$conditions)
	{
		$prepared_statement="SELECT ";
		for($i=0;$i<count($columns_array);$i++)
		{
			if($i==0)
			{
				$prepared_statement.=$columns_array[$i];
			}
			else
			{
				$prepared_statement.=",".$columns_array[$i];
			}
		}
		$prepared_statement.=" FROM $table_name $conditions";
		if(!($res=$this->new_conn->query($prepared_statement)))
		{
			$this->close_connection();
			echo("Error : Invalid filters 2...".$prepared_statement);
			exit();
		}
		return $res;
	}
	public function simply_run_statement_passed($prepared_statement)
	{
		//echo $prepared_statement;
		$this->open_connection();
		if(!($res=$this->new_conn->query($prepared_statement)))
		{
			$this->rollback();
			$this->close_connection();
			echo("Error : Invalid filters 3...".$prepared_statement);
			exit();
		}
		return $res;
	}
}
?>