Classe mysql php5

Description

Cette classe permet d'utiliser les fonctions mysql de la meme facon que mysqli, c'est a dire, sous forme d'objet. Pour utiliser cette classe, regarder la documentation PHP a propos de mysqli, cette classe fonctionne exactement pareil.
Necessite la classe de gestion d'erreur : http://www.phpcs.com/code.aspx?id=28249

Source / Exemple :


<?php
require_once('class.myexception.php');

class mysql
{
    protected $vars;

    public function __construct($host = 'localhost', $user = 'root', $password = '', $database = FALSE, $port = 3306)
    {
        $this->vars = array();

        $this->vars['config'] = array();
        $this->vars['config']['host']     = $host.':'.$port;
        $this->vars['config']['user']     = $user;
        $this->vars['config']['password'] = $password;
        $this->vars['config']['database'] = NULL;

        $this->vars['handle'] = @mysql_connect($host, $user, $password, TRUE);
            

        if ($database)
            $this->select_db($database);

        $this->vars['properties'] = array();
        $this->vars['properties']['client_info']      = @mysql_get_client_info();
        $buffer = explode('.', $this->vars['properties']['client_info']);
        $this->vars['properties']['client_version']   = $buffer[0]*10000+$buffer[1]*100+$buffer[2];
        $this->vars['properties']['host_info']        = @mysql_get_host_info($this->vars['handle']);
        $this->vars['properties']['protocol_version'] = @mysql_get_proto_info($this->vars['handle']);
        $this->vars['properties']['sqlstate']         = '';
        $this->vars['properties']['thread_id']        = @mysql_thread_id($this->vars['handle']);
        $this->vars['properties']['warning_count']    = 0;

        $this->vars['current_result'] = array();
        $this->vars['current_result']['handle'] = NULL;
        $this->vars['current_result']['errno']  = 0;
        $this->vars['current_result']['error']  = '';

        $this->vars['results'] = array();
    }

    public function __get($var)
    {
        switch ($var)
        {
            case 'affected_rows'    : return  mysql_affected_rows($this->vars['handle']);
            case 'client_info'      : return $this->vars['properties']['client_info'];
            case 'client_version'   : return $this->vars['properties']['client_version'];
            case 'errno'            : return $this->vars['current_result']['errno'];
            case 'error'            : return $this->vars['current_result']['error'];
            case 'field_count'      : return mysql_num_fields($this->vars['current_result']['handle']);
            case 'handle'           : return $this->vars['handle'];
            case 'host_info'        : return $this->vars['properties']['host_info'];
            case 'info'             : return mysql_info($this->vars['handle']);
            case 'insert_id'        : return mysql_insert_id($this->vars['handle']);
            case 'protocol_version' : return $this->vars['properties']['protocol_version'];
            case 'sqlstate'         : return $this->vars['properties']['sqlstate'];//---------
            case 'thread_id'        : return $this->vars['properties']['thread_id'];
            case 'warning_count'    : return $this->vars['properties']['warning_count'];
        }
    }

    public function change_user($user, $password, $database = NULL)
    {
        return mysql_change_user($user, $password, $database, $this->vars['handle']);
    }

    public function character_set_name()
    {
        return mysql_client_encoding($this->vars['handle']);
    }

    public function client_encoding()
    {
        return mysql_client_encoding($this->vars['handle']);
    }

    public function close()
    {
        return mysql_close($this->vars['handle']);
    }

    public function escape_sring($string)
    {
        return mysql_real_escape_string($string, $this->vars['handle']);
    }

    public function multi_query($query)
    {
        $query   = trim($query, '\r\n\t ;');
        $queries = array();
        while (FALSE !== strpos($query, ';'))
        {
            list($buffer, $query) = explode(';', $query, 2);
            if (strlen($query))
                $queries[] = $buffer;
            unset($buffer);
        }
        if (strlen($query))
            $queries[] = $query;
        $this->vars['results'] = array();
        foreach ($queries as $query)
        {
            $result =& $this->vars['results'][];
            if (FALSE === ($buffer = @mysql_query($query, $this->vars['handle'])))
                $this->vars['properties']['warning_count']++;
            $result['handle'] = $buffer;
            $result['errno']  = mysql_errno($this->vars['handle']);
            $result['error']  = mysql_error($this->vars['handle']);
        }
        $this->next_result();
        if (!$this->vars['current_result']['handle'])
            return FALSE;
        return TRUE;
    }

    public function more_results()
    {
        return isset($this->vars['results'][0]);
    }

    public function next_result()
    {
        if (!$this->more_results())
            return FALSE;
        $this->vars['current_result'] = array_shift($this->vars['results']);
        return TRUE;
    }

    public function ping()
    {
        return @mysql_ping($this->vars['handle']);
    }

    public function real_escape_sring($string)
    {
        return mysql_real_escape_string($string, $this->vars['handle']);
    }

    public function query($query)
    {
        $this->vars['results'] = array();
        if (FALSE === ($buffer = @mysql_query($query, $this->vars['handle'])))
            $this->vars['properties']['warning_count']++;
        $this->vars['current_result']['handle'] = $buffer;
        $this->vars['current_result']['errno']  = mysql_errno($this->vars['handle']);
        $this->vars['current_result']['error']  = mysql_error($this->vars['handle']);
        if (!$buffer)
            return FALSE;
        return new mysql_result($buffer);
    }

    public function select_db($database)
    {
        if (!@mysql_select_db($database, $this->vars['handle']))
            return FALSE;
        $this->vars['config']['database'] = $database;
        return TRUE;
    }

    public function store_result()
    {
        if (FALSE === $this->vars['current_result']['handle'])
            return FALSE;
        return new mysql_result($this->vars['current_result']['handle']);
    }

    public function use_result()
    {
        return $this->store_result();
    }
}

class mysql_result
{
    public $vars;

    public function __construct($handle)
    {
        $this->vars                  = array();
        $this->vars['current_field'] = NULL;
        $this->vars['field_count']   = mysql_num_fields($handle);
        $this->vars['handle']        = $handle;
        $this->vars['lenghts']       = FALSE;
        $this->vars['num_rows']      = mysql_num_rows($handle);
    }

    public function __get($name)
    {
        switch ($name)
        {
            case 'current_field' : return $this->vars['current_field'];
            case 'field_count'   : return $this->vars['field_count'];
            case 'lenghts'       : return $this->vars['lenghts'];
            case 'num_rows'      : return $this->vars['num_rows'];
        }
    }

    public function close()
    {
        return mysql_free_result($this->vars['handle']);
    }

    public function data_seek($rows = 1)
    {
            return @mysql_data_seek($this->vars['handle'], $rows);
    }

    public function fetch_array($result_type = MYSQL_BOTH)
    {
        $result = mysql_fetch_array($this->vars['handle'], $result_type);
        $this->vars['lenghts'] = mysql_fetch_lengths($this->vars['handle']);
        return $result;
    }

    public function fetch_assoc()
    {
        $result = mysql_fetch_assoc($this->vars['handle']);
        $this->vars['lenghts'] = mysql_fetch_lengths($this->vars['handle']);
        return $result;
    }

    public function fetch_field()
    {
        if (!($buffer = mysql_fetch_field($this->vars['handle'])))
            return FALSE;
        if (!isset($this->vars['current_field']))
            $this->vars['current_field'] = 0;
        else
            $this->vars['current_field']++;
        return $buffer;
    }

    public function fetch_field_direct($id)
    {
        if(!$this->field_seek($id))
            return FALSE;
        return mysql_fetch_field($this->vars['handle']);
    }

    public function fetch_fields()
    {
        $fields = array();
        while ($buffer = $this->fetch_field())
            $fields[] = $buffer;
        return $fields;
    }

    public function fetch_object()
    {
        $result = mysql_fetch_object($this->vars['handle']);
        $this->vars['lenghts'] = mysql_fetch_lengths($this->vars['handle']);
        return $result;
    }

    public function fetch_row()
    {
        $result = mysql_fetch_row($this->vars['handle']);
        $this->vars['lenghts'] = mysql_fetch_lengths($this->vars['handle']);
        return $result;
    }

    public function field_seek($field = 0)
    {
        if (@mysql_field_seek($this->vars['handle'], $field))
            return FALSE;
        $this->vars['current_field'] = $field;
        return TRUE;
    }
}
?>

Conclusion :


Si vous avez des commentaires ou des suggestions, n'hesitez pas.

Si vous souhaitez mettre une bonne note a cette source n'hesitez pas non plus. lol

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.