IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[POO] Classe de connexion à une base de données


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 160
    Points : 66
    Points
    66
    Par défaut [POO] Classe de connexion à une base de données
    Comme j'ai du mal à trouver de bon script entierement POO je me suis dit que le mieu était de faire les miens pour m'entrainer donc la je vais faire un petit projet en POO.

    La pour le moment j'ai fais la classe Mysql la voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
     
    <?php
    #class Mysql qui permet de gérer la connexion, déconnexion à une base de donnée
    #ainsi que l'ajout, modification, suppression de donnée dans la base de donnée
     
    //définition de la classe mysql
    class Mysql 
    {
    	//déclaration des attributs
    	private $serveur; //déclaration de l'attribut pour le nom du serveur
    	private $user; //déclaration de l'attribut pour le nom d'utilisateur de la base de donnée
    	private $pass; //déclaration de l'attribut pour le mot de passe de la base de donnée
    	private $database; //déclaration de l'attribut pour le nom de la base de donnée
     
    	//déclaration de la méthode constructeur
    	public function __construct($serveur = "localhost",$user = "root",$pass = "",$database = "test")
    	{
    		//assignation des attributs de l'objet avec les variables
    		$this->serveur = $serveur;
    		$this->user = $user;
    		$this->pass = $pass;
    		$this->database = $database;
     
    		//connexion avec le serveur mysql
    		$this->link = mysql_connect($this->serveur, $this->user, $this->pass);
     
    		//si la connexion est établit on séléctionne la base de donnée
    		if($this->link)
    		{
    			mysql_select_db($this->database, $this->link);
    		}
    	}
     
    	//déclaration de la méthode pour la construction d'une requête
    	public function select($champs,$from,$critere)
    	{
    		#Exemple: select("*","personne","WHERE id='1'");
    		$this->requete = mysql_query("SELECT $champs FROM $from $critere");
    	}
     
    	//déclaration de la méthode pour l'ajout de donnée dans une table
    	public function ajout($from,$champs,$value)
    	{
    		#Exemple: ajout("personne","(id,nom,prenom)","('','dupont','roger')");
    		mysql_query("INSERT INTO $from $champs VALUES $value");
    	}
     
    	//déclaration de la méthode pour la modification de donnée dans une table
    	public function update($from,$champs,$critere)
    	{
    		#Exemple: update("personne","nom='dober'","WHERE id='1'");
    		mysql_query("UPDATE $from SET $champs $critere");
    	}
     
    	//déclaration de la méthode pour la suppression de donnée dans une table
    	public function delete($from,$critere)
    	{
    		#Exemple: delete("personne","WHERE id='1'");
    		mysql_query("DELETE FROM $from $critere");
    	}
     
    	//déclaration de la méthode pour extraire les donnée d'une requête
    	public function extraire()
    	{
    		return mysql_fetch_array($this->requete);
    	}
     
    	//déclaration de la méthode pour compter le nombre d'entrée dans une table
    	public function rows()
    	{
    		return mysql_num_rows($this->requete);
    	}
     
    	//déclaration  de la méthode deconstructeur
    	public function __destruct()
    	{
    		mysql_close($this->link);
    	}
    }
    ?>
    je les faite celon les besoins du projet donc inutile de me dire qu'il y a pas tout (fetch_assoc ... etc).

    J'aimerais des avis sur ma classe des améliorations,problème de programmation ... etc
    Puis j'aimerais faire une fonction pour les boucles while exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $exemple = mysql_query("SELECT * FROM membres");
    while($exemple2 = mysql_fetch_array($exemple))
    {
          echo $exemple2['pseudo'];
    }
    Merci

  2. #2
    Membre averti Avatar de Linio
    Inscrit en
    Octobre 2005
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 431
    Points : 332
    Points
    332
    Par défaut
    mysql_fetch_array n'est pas le plus optimal, tu devrais plutôt utiliser mysql_fetch_assoc et mysql_fetch_row selon tes besoins.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 160
    Points : 66
    Points
    66
    Par défaut
    J'ai toujours utilisé mysql_fetch_array ... mais quel est la différentre entre mysql_fetch_array et assoc ?

    Pour fetch_row ça peut-être utilie si on a besoin d'extraire et compter !

    Sinon ma classe aucun souçis ?

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Points : 1 177
    Points
    1 177
    Par défaut
    C'est bien mieux d'éviter des connexion/deconnexion a ta base de données.

    Tu peux utiliser le Pattern Singleton pour la connexion a ta base, ca t'evitera d'instancier une connexion et deconnexion a chaque requete.

Discussions similaires

  1. Connexion à une base de donnée en POO via file.ini
    Par Eric5031 dans le forum Langage
    Réponses: 3
    Dernier message: 16/04/2015, 10h46
  2. [PHP 5.2] POO et connexion à une base de données dans une fonction
    Par tolwin dans le forum Langage
    Réponses: 5
    Dernier message: 09/11/2012, 11h39
  3. Réponses: 2
    Dernier message: 20/01/2012, 16h02
  4. [POO] Connexion à une base de données
    Par merlubreizh dans le forum Langage
    Réponses: 2
    Dernier message: 30/01/2008, 10h13
  5. Réponses: 3
    Dernier message: 29/03/2004, 18h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo