begin process at 2012 05 27 22:15:47
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Class et Objet ( POO )

 > CLASSE MYSQL PHP5

CLASSE MYSQL PHP5


 Information sur la source

Note :
6,5 / 10 - par 2 personnes
6,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Class et Objet ( POO ) Niveau :Expert Date de création :07/12/2004 Date de mise à jour :08/03/2005 19:13:32 Vu / téléchargé :8 174 / 389

Auteur : Gorrk

Ecrire un message privé
Site perso
Commentaire sur cette source (22)
Ajouter un commentaire et/ou une note

 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

  • <?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;
  • }
  • }
  • ?>
<?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

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

18 décembre 2004 23:49:28 :
Gestion des exceptions, nettoyage du code : les variables Host, User et Password sont desormais publiques, on ne passe plus par des fonctions pour modifier leur valeur.
19 décembre 2004 00:04:51 :
Correction de quelques erreurs
20 décembre 2004 19:17:17 :
Evolution majeur de la classe, encore en travaux
21 décembre 2004 21:58:46 :
Meme si cette classe est encore loin d'etre finie, car il manque encore des methodes, elle est deja fonctionnelle.
06 février 2005 19:16:44 :
La classe est presque complete, il ne manque que le gestion de sqlstate (si quelqu'un sait faire) et la methode prepare avec la classe mysql_stmt A part ca, la classe fonctionne très bien.
06 février 2005 20:45:03 :
Ajout du zip
08 mars 2005 19:13:33 :
Un petit nettoyage de code.

 Sources du même auteur

DÉBUT DE CLASSE ABSTRAITE POUR UNE MEILLEUR GESTION DES PROP...
Source avec Zip CLASSE POUR CREER UN OBJET DYNAMIQUE PHP5
Source avec Zip CLASSE D'EXCEPTIONS ET DE GESTIONS D'ERREURS PHP5
Source avec Zip FONCTION PRATIQUES POUR MANIPULER LES PARAMETRES HTTP
Source avec Zip CLASSE DE NEWS PHP5

 Sources de la même categorie

Source avec Zip GÉNÉRATION AUTOMATIQUE DE FICHIER .CLASS.PHP EN FONCTION D'U... par ig3
CLASSE D'OBJET DE CRYPTAGE ET DÉCRYPTAGE DE CHAINES DE CARAC... par 8Tnerolf8
Source avec Zip MY.DEVIANTART API par inwebo
CLASSE DE GESTION DE "VARIABLES GLOBALES D'ENVIRONNEMENT" par pifou25
Source avec Zip COLLECTION.CLASS.MIN.PHP par thunderhunter

Commentaires et avis

Commentaire de GRenard le 08/12/2004 04:30:37

Wouw, gros pour rien...
enfin, je pense
car j'ai quelque chose de plus petit qui permet de gérer n'importe quelle sorte de base
Tiens tu peux vérifier et me dire ce que tu en penses
http://www.phpcs.com/code.aspx?ID=24813

Pour ceux qui vont dire que je ne fais que critiquer. C'est une bonne source pour apprendre le PHP5 car il utilise les méthode magique !
Point Faible : Un exemple de l'utilisation serait apprécié.

Commentaire de Kirua le 08/12/2004 14:39:52

pourquoi tu mets trois signes '=' pour les comparaisons? il faut utiliser ça pour différencer les false des NULL pour certaines fonctions, mais dans ton cas, tu checks si le booléen Debug par exemple vaut false, tu peux te contenter de $this->Debug == false ça fera l'affaire.

sinon, c'est tjs chouette d'encapsuler :) juste une chose: tu devrais passer l'identifiant de ta connexion à chaque requête MySql, sinon c'est la connexion activée le plus récemment qui est utilisée, et si tes scripts utilisent plusieurs occurrences de ta classe pour des bases différentes, ça risque fort de bugger à mon avis.

Commentaire de Gorrk le 08/12/2004 15:40:59

Les 3 "=" c'est pour qu'il n'y ait jamais de confusion dans las comparaisons entre les FALSE, les chaînes vides, les 0, les NULL, ect, mais tu as raison, 2 suffiraients.
Pour ta remarque sur l'identifiant de connexion, merci de m'y avoir fais penser, je l'avais oublié, si j'avais eu des erreurs, je suis sur que je n'aurais pas penser a verifier ca lol.

Commentaire de Nerdz le 08/12/2004 17:19:00

Ceci n'est pas une critique mais une simple question que je me pose depuis longtemps...

Pourquoi vous écrivez toutes vos nom de fonctions, variable, class et autres en anglais ?? Personnellement je trouve sa ridicule.

C'est simplement une question que je me pose depuis longtemps ^^

Commentaire de Kirua le 08/12/2004 17:27:27

- pour les rendre réutilisables dans un éventuel projet de groupe (càd pas forcément avec des francophones)
- parce que les mots en anglais contiennent naturellement très très peu de caractères accentués: c'est plus commode pour les noms de variables, classes...
- parce que ça choque moins à la lecture du code (if(object->IsReady()) est plus logique que if(objet->EstPret())
- parce que ça permet souvent de faire plus court (Is_, Get_, Set_ ...) -- ce sont des bêtes exemples ici, mais c'est souvent vrai, ne fut-ce que grâce à la forme progressive (Drawing -> EnTrainDeDessiner, ça c'est ridicule ;))

Commentaire de Nerdz le 08/12/2004 18:18:35

ok je vois :)
vu dans ce sens c'est vraiment mieu de coder en anglais
merci pour ta réponse !

Commentaire de Kirua le 08/12/2004 18:20:45

convaincu ou converti? ;)

Commentaire de Nerdz le 08/12/2004 18:43:53

Bah convaincu ^^ mais je ne peux pas .. c les règles (normes) de mon département de programmation

Commentaire de Kirua le 08/12/2004 18:46:01

à 17 ans? tu fais quoi comme études? t'as déjà fini le bac?
ils sont bizarres dans ton département si je puis me permettre :p bcp de gros projets open source viennent des universités, si les gens dans ces unifs codaient en danois s'ils sont danois, ça n'avancerait pas bcp, mdr ^^

Commentaire de Nerdz le 08/12/2004 19:08:00

département de mon cégep ( jsuis au Québec )

ouais je suis d'accord sur le fais qu'il faut s'entendre sur une langue universel mais bon ... jles ferais pas changer d'idée ^^

Commentaire de GRenard le 08/12/2004 23:11:28

Tsss moi aussi je suis au Québec et dans l'université ou je suis (Université de Sherbrooke), il te force quasiment (dans certains programmes) à apprendre à coder comme ILS le veulent... l'utilisation des noms de variables francaise ou angalise importe peu tant que la fonction est documenté (en francais :P)

Pour la norme des ===, si ta fonction peut retourner autre chose qu'un seul type de valeur, il est mieux de mettre cette comparaison d'objet !

Commentaire de Kirua le 08/12/2004 23:59:16

si ta fonction peut retourner autre chose qu'un seul type de variable, c'est que tu codes comme un porc mdr :p enfin... le C++ forcément ça te déforme un codeur ça ^^

Commentaire de GRenard le 09/12/2004 02:34:28

alors PHP est codé comme un porc...
Ca retourne souvent une ressource ou FALSE, ou encore, un int ou FALSE...
Donc c'est pas coder comme un porc, c'est coder comme PHP.

Commentaire de Kirua le 09/12/2004 09:17:41

suis pas tt à fait d'accord. ce qui manque c'est juste le principe des pointeurs. À savoir qu'en C++ par exemple (et plus généralement en C) si tu as une fonction qui est censée te retourner un objet quelconque, à moins d'être certain de pouvoir trouver cet objet auquel cas tu utilises une référence, tu vas utiliser un pointeur. Un pointeur c'est une variable qui contient l'adresse d'un objet dans la mémoire. Or, l'adresse 0 est invalide. Donc: si la fonction échoue tu retournes 0 (ou plutôt NULL, comme ça si ton système est différent ce sera adapté, c'est juste une histoire de constante), sinon tu retournes un pointeur valide. Au final, tu as tjs retourné un pointeur, seulement l'utilisateur doit faire un rapide test if(objet_retourné != NULL) et vala. mais c'est propre, t'as jamais de confusion entre des booléens, des entiers (en fait les booléens sont des entiers), des chaînes (vides ou pas), des objets invalides, des ressources mysql non valide etc etc...

mais en PHP, c'est super facile de renvoyer n'importe quoi puisque ni les variables ni les fonctions ne sont typées, et au final il faut inventer des === et des !== pour rétablir, c'est un peu dommage non?

Commentaire de Gorrk le 20/12/2004 19:19:32

Je viens de modifier le fonctionnement de mon script, il n'est pas encore terminer, mais je vous invite a examiner les changements.

Commentaire de Gorrk le 21/12/2004 22:11:15

La classe a encore evoluée, elle tend de plus en plus a fonctionner comme l'extension mysqli, mais elle n'est pas encore finie, il manque encore des proprietes et de methodes.

J'attend des critiques et/ou des suggestions de votre part.

Merci d'avance.

Commentaire de Gorrk le 06/02/2005 19:19:56

Bon, j'ai refait la plus grande partie du code, ce qui a permis d'eliminer les bugs, si il en a d'autres, faites le moi savoir.
Je n'ai pas mis a jour le zip, je le ferais dès que j'aurais le temps.

Commentaire de Gorrk le 06/02/2005 20:47:23

C'est bon, le zip a ete mis a jour, il contient la classe et un fichier d'exemple.

Commentaire de Gorrk le 06/03/2005 15:28:14

Je viens de remarquer quelque chose de bizarre et je voudrais savoir si c seulement sur mon site ou si c'est un bug de php : la classe mysql ne ce charche pas automatiquement avec __autoload().

Est ce que ca fait la même chose chez vous ?

Commentaire de Gorrk le 06/03/2005 15:28:39

ne se charge pas, pardon. lol

Commentaire de Gorrk le 06/03/2005 15:32:02

Désolé, c'était effectivement du à une problème de programmation.

Commentaire de nicolas66 le 02/11/2005 01:27:47

Rien n'empeche de déclarer une variable avec un type ...

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,312 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales