Classe de connection a mysql

Classe de connection a mysql - PHP - Programmation

Marsh Posté le 20-03-2004 à 11:15:02    

:hello:  
 
Voila jusque la je n'avait jamais utilisé de classes, tout simplement parsque je n'en avait pas besoin.
Pourtant j'ai chercher a tester et je rencontre un petit probleme.
 
J'ai crée un petit script de connection à mysql.
Pour etre honnete le script entier marche, mais j'aimerai faire un petit truc, pas forcement indispensable, mais quand ca marche pas, je veut que ca marche [:dawa]
 
Voila mon script, et regarder a l'endroit ou j'ai marqué XXXX dans la fonction ConnectDB
 

Code :
  1. <?php
  2. ##
  3. #Classe de connection a MySql
  4. ##
  5. #fichier(s) requi(s)
  6. require_once("./connect.conf.php" );
  7. #Debut de la class
  8. class Connect {
  9. #Defini les variables de connection
  10. var $server=SERVER;
  11. var $user=USER;
  12. var $pass=PASS;
  13. var $db=DB;
  14.  #fonction de connection sql
  15.  function ConnectSQL () {
  16.   #les variables globales
  17.   global $server, $user, $pass;
  18.   #connection sql || =>erreur
  19.    return mysql_connect($this->server, $this->user, $this->pass) or die ("Impossible de se connecter à {$this->server}. <br />Erreur : ".mysql_error());
  20.  }
  21.  function ConnectDB () {
  22.   #la variable
  23.   global $db;
  24.   #connection à la db || => erreur
  25.   return mysql_select_db($this->db, XXXX) or die ("Impossible de se connecter à la base de donnée ( {$this->db} ).<br />Erreur : ".mysql_error());
  26.  }
  27. }
  28. #Connection a SQL grace a la classe
  29. $Connect = new Connect;
  30. $Connect->ConnectSQL();
  31. $Connect->ConnectDB();
  32. ?>


 
En gros, j'aimrai remplacer ce XXXX par l'identifiant de connection retourner dans ma fonction ConnectSQL.
 
Le truc c'est que je n'ai pas trouver comment faire cela, et c'est pour ca que je me retourne vers vous :)
 
ca doit pas etre bien sorcier :) :hello:

Reply

Marsh Posté le 20-03-2004 à 11:15:02   

Reply

Marsh Posté le 20-03-2004 à 11:38:31    

Salut
 
Tout d'abord un des intérêts des classes est que tu peux virés les global.
 

Code :
  1. <?php
  2.   ##
  3.   #Classe de connexion a MySql
  4.   ##
  5.  
  6.   #fichier(s) requi(s)
  7.   require_once("./connect.conf.php" );
  8.  
  9.   #Debut de la class
  10.   class Connect {
  11.      
  12.      #Defini les variables de connexion
  13.      var $server=SERVER;
  14.      var $user=USER;
  15.      var $pass=PASS;
  16.      var $db=DB;
  17.      var $link;
  18.      
  19.       #fonction de connexion sql
  20.       function ConnectSQL () {
  21.          
  22.           #connexion sql || =>erreur
  23.           $this->link = mysql_connect($this->server, $this->user, $this->pass) or die ("Impossible de se connecter à {$this->server}. <br />Erreur : ".mysql_error());
  24.           return $this->link;
  25.       } 
  26.       function ConnectDB () {
  27.          
  28.          #connexion à la db || => erreur
  29.          $select_db = mysql_select_db($this->db, $this->link) or die ("Impossible de se connecter à la base de donnée ( {$this->db} ).<br />Erreur : ".mysql_error());
  30.          return $select_db;
  31.       }
  32.   }
  33.  
  34.   #Connexion a SQL grace a la classe
  35.    $Connect = new Connect;
  36.    $Connect->ConnectSQL();
  37.    $Connect->ConnectDB();
  38.   ?>


 
PS : en français c'est connexion et pas connection :)


Message édité par ratibus le 20-03-2004 à 11:39:40
Reply

Marsh Posté le 20-03-2004 à 11:39:27    


$Connect->ConnectDB($Connect->ConnectSQL());
 
 :D

Reply

Marsh Posté le 20-03-2004 à 11:40:39    

okay cool.
 
j'avais vu un truc du genre Connect::ConnectSQL
 
ca pourrait ce faire dans ce cas la?

Reply

Marsh Posté le 20-03-2004 à 11:42:10    

nan plus serieusement..
 
tu déclares dans ta classe, un membre qui contiendra ton identifiant de connexion  :)  
 
genre "var mysqlLinkId"
 
et dans ce membre tu met le resultat de connect(); :)
 
 
edit: grillé :sarcastic:


Message édité par Mr yvele le 20-03-2004 à 11:42:22
Reply

Marsh Posté le 20-03-2004 à 11:42:59    

merci a vous deux :D

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed