<?php
class models_mysql extends config_mysql{
private $last_call_resource;
private $last_outs_resource;
public $query_call;
public function __construct(){
$this->connection = mysql_connect($this->host,$this->user,$this->pass, true);
mysql_select_db($this->db, $this->connection);
}
public function getConnection(){
return $this->connection;
}
public function __destruct(){
mysql_close($this->connection);
}
private function numtochars($num,$start=65,$end=90){
$sig = ($num < 0);
$num = abs($num);
$str = "";
$cache = ($end-$start);
while($num != 0)
{
$str = chr(($num%$cache)+$start-1).$str;
$num = ($num-($num%$cache))/$cache;
}
if($sig)
{
$str = "-".$str;
}
return $str;
}
public function get($mysql_name, $call = true){
$func_name = "mysql_$mysql_name";
if($call){
return $func_name($this->last_call_resource);
}else{
return $func_name($this->last_outs_resource);
}
}
public function call($param_storedProcName, $param_vars){
$query_sets = "";
$this->query_call = "CALL $param_storedProcName(";
$out = array();
$out_param_count = 1;
foreach($param_vars as $var){
if(isset($var['name'])){
$name = $var['name'];
$char = $this->numtochars($out_param_count);
$out_param_count++;
$out[$char] = $name;
$this->query_call .= "@$char, ";
}
if($var['value'] !== NULL){
$this->query_call .= "'".$var['value']."', ";
}else{
$this->query_call .= $var['value'].", ";
}
}
$this->query_call = substr($this->query_call, 0, (count($this->query_call)-3));
$this->query_call .= ");";
$mysql_query = mysql_query($this->query_call, $this->connection);
$this->last_call_resource = $mysql_query;
if(!empty($out)){
$query_out = "SELECT ";
foreach($out as $char => $name){
$query_out .= "@$char AS $name, ";
}
$query_out = substr($query_out, 0, count($query_out)-3);
echo $query_out;
$mysql_query = mysql_query($query_out, $this->connection);
$this->last_outs_resource = $mysql_query;
}
}
}
|