Class sql

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Class sql

par Sékiltoyai » 29 avr. 2007, 23:00

Les classes sont très utiles, elles permettent de regroupper en une entitée les données et les méthodes de traitement de ces données, de manière à rationnaliser le traitement.

Ici, le but est d'avoir une entité qui gère totalement la ressource sql, qui gère les erreurs. Il y a une grosse majorité du code que l'on n'a pas à réécrire, et on ne met pas des morceaux un peu partout, ensuite l'objet créé connait sa ressource, donc il n'y a pas à se trimballer avec 36 variables pour gérer sa connexion. Enfin, si on modifie une partie de la manière dont on veut traiter les requètes sql, tout est au même endroit, on peut facilement faire les changements.

Class sql

par dunbar » 29 avr. 2007, 22:46

Bonsoir,
<?php
class sql
    {
    var $nbr_queries = 0;


    function sql($host,$user,$pass,$db)
        {
        $this->connect = mysql_connect($host,$user,$pass);
        if ($this->connect !== FALSE)
            {
            $this->db = mysql_select_db($db,$this->connect);
            if ($this->db === FALSE)
                {
                mysql_close($this->connect);
                $this->connect = FALSE;
                die('Impossible de sélectionner une base de données.');
                }
            return TRUE;
            }
        die('Impossible de se connecter à la base de données.');
        }


    function sql_close($int)
        {
        if ($this->connect !== FALSE)
            {
            $this->connect = mysql_close($this->connect);
            if ($int === 1) { echo '<p>Il y a eu '.$this->nbr_queries.' requêtes.</p>'; }
            return $this->connect;
            }
        return FALSE;
        }


    function sql_change_db($db)
        {
        if ($this->connect !== FALSE)
            {
            $this->db = mysql_select_db($db,$this->connect);
            if ($this->db === FALSE)
                {
                mysql_close($this->connect);
                $this->connect = FALSE;
                die('Impossible de sélectionner une base de données.');
                }
            return TRUE;
            }
        return FALSE;
        }


    function sql_query($query,$fetch_array = FALSE)
        {
        $this->query = $query;
        if (!empty($this->query) AND $this->connect !== FALSE)
            {
            $this->result = mysql_query($this->query,$this->connect);
            $this->nbr_queries++;
            $this->error = ($this->result === FALSE) ? TRUE : FALSE;
            if ($fetch_array AND !$this->error)
                {
                $this->result = mysql_fetch_array($this->result);
                $this->error = ($this->result === FALSE) ? TRUE : FALSE;
                }
            $this->result = ($this->error) ? $this->query."\n".mysql_errno($this->connect).' : '.mysql_error($this->connect) : $this->result;
            if ($this->error) die($this->result);
            return $this->result;
            }
        $this->error = TRUE;
        $this->result = 'La requète SQL est vide.';
        die($this->result);

        }


    function sql_table($table,$db = '',$like = '')
        {
        $db = (empty($db)) ? '' : ' FROM `'.$db.'`';
        $like = (empty($like)) ? '' : " LIKE '$like'";
        $this->query = 'SHOW TABLES'.$db.$like;
        $this->result = $this->sql_query($this->query);
        $isset_table = FALSE;
        while ($result_table = mysql_fetch_array($this->result))
            {
            if (is_array($table))
                {
                foreach ($table as $value)
                    {
                    $isset_table = ($result_table[0] == $value) ? TRUE : $isset_table;
                    }
                }
            else
                {
                $isset_table = ($result_table[0] == $table) ? TRUE : $isset_table;
                }
            }
        return $isset_table;
        }
    }
?>
Je suis tomber là dessus sur un autre poste, qui pourrais m'expliquer le principe exact de cette class et surtout quelle avantage possede t'elle par apport un simple fichier connect ?
Merci