Login   Register  
PHP Classes
elePHPant
Icontem

File: classes/db_mysql.class.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of ZLioxygon  >  Minimalistic DB  >  classes/db_mysql.class.php  >  Download  
File: classes/db_mysql.class.php
Role: Class source
Content type: text/plain
Description: Extended class
Class: Minimalistic DB
Database abstraction layer with minimal interface
Author: By
Last change:
Date: 2013-01-11 04:44
Size: 3,071 bytes
 

Contents

Class file image Download
<?php
/******************************************************************************
MySQL
/******************************************************************************/
final class db_mysql extends db{
/******************************************************************************/
    
public function __construct($config){
        
$this->link = @mysqli_connect(
            
$config['host'],
            
$config['user'],
            
$config['pass'],
            
$config['base'],
            
$config['port'],
            
$config['sock']
        );
        if(!
$this->link){
            throw new 
db_Exeption('MySQL #'.@mysqli_connect_errno($this->link).': '.@mysqli_connect_error($this->link).'!'1);
        }
        if(
$config['coll'] !== false){
            
self::c($config['coll']);
        }
    }
/******************************************************************************/
    
public function __destruct(){
        if(!!
$this->link){
            @
mysqli_close($this->link);
        }
    }
/******************************************************************************/
    
public function q($query){
        
$timer microtime(true);
        
$this->rows 0;
        
$this->fields 0;
        
$return null;
        if(!
is_string($query) or empty($query)){
            throw new 
db_Exeption('MySQL #2: Invalid query!'2);
        }
        
$result mysqli_query($this->link$query);
        
$this->counter += 1;
        if(
$result === false){
            
$this->timer += (microtime(true) - $timer);
            throw new 
db_Exeption('MySQL #'.mysqli_errno($this->link).': '.mysqli_error($this->link).'!'3);
        }
        elseif(
$result === true){
            
$this->rows mysqli_affected_rows($this->link);
            
$return true;
        }
        else{
            
$this->fields mysqli_num_fields($result);
            
$this->rows mysqli_num_rows($result);
            
$return = array();
            while((
$row mysqli_fetch_assoc($result)) !== null){
                
$return[] = $row;
            }
            
mysqli_free_result($result);
        }
        
$this->timer += (microtime(true) - $timer);
        return(
$return);
    }
/******************************************************************************/
    
public function s($data){
        if(
is_array($data)){
            foreach(
$data as $key => $val){
                
$data[$key] = self::s($val);
            }
            return(
$data);
        }
        if(
function_exists('mysqli_real_escape_string')){
            
$data mysqli_real_escape_string($this->link$data);
        }
        elseif(
function_exists('mysqli_escape_string')){
            
$data mysqli_escape_string($this->link$data);
        }
        else{
            
$data addslashes($data);
        }
        return(
$data);
    }
/******************************************************************************/
    
public function c($collate){
        if(@
mysqli_set_charset($this->link$collate)){
            return(
true);
        }
        else{
            throw new 
db_Exeption('MySQL #'.mysqli_errno($this->link).': '.mysqli_error($this->link).'!'3);
        }
    }
/******************************************************************************/
    
public function l(){
        return((
$this->link !== false) ? @mysqli_insert_id($this->link) : false);
    }
/******************************************************************************/
}
/******************************************************************************/