CLASSE DE CONNEXION À UNE BASE DE DONNÉE MYSQL

Signaler
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
-
Messages postés
3
Date d'inscription
dimanche 25 janvier 2009
Statut
Membre
Dernière intervention
30 juillet 2012
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/42561-classe-de-connexion-a-une-base-de-donnee-mysql

Messages postés
3
Date d'inscription
dimanche 25 janvier 2009
Statut
Membre
Dernière intervention
30 juillet 2012

voici mon code

<?php
class Mysql
{
var $login;
var $pass;
var $serveur;
var $base;
var $connexion;

function __construct()
{
$this->login = "root";
$this->pass = "";
$this->serveur = "localhost";
$this->base = "festayresdatabase";
$this->connecter();
}

function connecter()
{
/* se connecter */
$this->connexion = mysql_connect($this->serveur, $this->login, $this->pass) or die ("Connexion impossible");
mysql_select_db($this->base, $this->connexion) or die ("Base introuvable");

}
?>
Messages postés
3
Date d'inscription
dimanche 25 janvier 2009
Statut
Membre
Dernière intervention
30 juillet 2012

bonjour a vous , je suis un debutant en php5 et je voudrais faire ma classe de connexion Mysql pour interagir avec d'autre classe . merci de m'indiquer comment je pourrais proceder pour la premiere fois
Messages postés
1
Date d'inscription
mardi 5 octobre 2010
Statut
Membre
Dernière intervention
20 juillet 2011

ce sujet est un peut vieux mais bon pas grâve !

comme le dit web2004 ta classe n'est pas un sigleton car elle retourne plusieurs instances de la classe

pour arranger ceci ( ça peut servir on sais jamais ! ) juste remplacer

if ((!isset($instance))) // Si aucune instance de Connexion
$instance = new Connexion($host, $user, $pass, $base); //Alors on en créer une
return $instance; //Dans tous les cas on retourne une instance (soit la nouvelle soit l'existante)

par :

if (!isset(self::$instance)) {
$c = __CLASS__;
self::$instance = new $c($host, $user, $pass, $base);
}
return self::$instance;

et ça marche comme un charme !
Messages postés
12
Date d'inscription
vendredi 6 février 2004
Statut
Membre
Dernière intervention
27 janvier 2009

c'est bien beau mais ton singleton ne fonctionne pas correctement !!! il insctancie plusieurs fois meme lorsque ton objet existe déja !!! je suppose que tu t'en es rendu compte sinon suffit de tester cette boucle pour s'en apercevoir :
$sql = Connexion::getConnexion('localhost','root','','em');
for($i=0; $i<10; $i++) {
$cnx = Connexion::getConnexion('localhost','root','','em');
echo '';
var_dump($cnx);
echo '

';
}

pour plus de lisiblité ajouter un message "instance n'existait pas" et "instance existait déja" dans ta méthode getConnextion tu verras mieux.

bonne continuation
Afficher les 12 commentaires