Login   Register  
PHP Classes
elePHPant
Icontem

File: mysql.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of martin barker  >  Lightweight MVC MySQL SP Class  >  mysql.php  >  Download  
File: mysql.php
Role: Class source
Content type: text/plain
Description: goes in the models folder and allows use of Stored Procs
Class: Lightweight MVC MySQL SP Class
Call MySQL stored procedures
Author: By
Last change:
Date: 2012-02-12 16:11
Size: 2,139 bytes
 

Contents

Class file image Download
<?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->passtrue);
        
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_call0, (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_out0count($query_out)-3);
            echo 
$query_out;
            
$mysql_query mysql_query($query_out$this->connection);
            
$this->last_outs_resource $mysql_query;
        }
    }
}