PHP connexion à la bdd

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

10 févr. 2010, 17:14

Effectivement, la remarque de stealth35 est bonne.
A savoir que tu es en train de coder une classe qui ne te permettra que de te connecter à ta base, sans plus.
Alors qu'il existe une extension à PHP, PDO, qui utilise la logique POO pour la connexion à la base de données (ce que tu cherches à faire, mais en plus poussé), et qui permet une abstraction de la base de données (tu n'utilises jamais de fonctions mysql_*()).

Dans le post de stealth35, il manque juste un chouia d'explication, mais l'idée est là.
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 89 Messages

10 févr. 2010, 17:50

En fait je vais t'expliquer, c'est pour mon projet en informatique je doit me connecter a la bdd. Mais je ne doit pas utiliser de librairie comme le PDO, j'ai déja regarder un peu et c'est plutôt pas mal fait leur truc. Mais malheureusement pour moi je doit tt coder a la main.
Voila, je ne sais pas si ta trouver d'autre erreur ?
Cordialement

ViPHP
ViPHP | 5462 Messages

10 févr. 2010, 18:04

$database= new Connexion ($login,$mdp,$serveur);
pareil pas dans l'ordre

dans ta fonction Deconnecter $this->link n'existe pas
sinon le try...catch c'est pas comme ca que ca s'utilise

class Connexion {

    private $sgbdLogin;
    private $sgbdMotDePasse;
    private $sgbdServer;    
    private $connexion = null;
    
    public function __construct($serveur, $login, $mdp)
    {    
        $this->sgbdLogin        = $login;
        $this->sgbdMotdePasse   = $mdp;
        $this->sgbdServer       = $serveur;
    }
     
    public function Connecter()
    {    
        $this->connexion = @mysql_connect($this->sgbdServer, $this->sgbdLogin, $this->sgbdMotDePasse);
        
        if (!$this->connexion)
        {
            throw new Exception ('Impossible de se connecter à la base de donnée' . PHP_EOL . mysql_error());
        }
        else
        {
            echo 'Connexion réussi avec succès';
        }    
     }
    
    public function Deconnecter()
    {
        mysql_close($this->connexion);
    }
}

$database = new Connexion('127.0.0.1', 'root', '');
$database->Connecter();
$database->Deconnecter();

Eléphant du PHP | 89 Messages

10 févr. 2010, 18:20

Idem, rien à changer..

ViPHP
ViPHP | 5462 Messages

10 févr. 2010, 18:25

Idem, rien à changer..
ta quelle version de PHP et mysql ?
essaye 127.0.0.1 au lieu de localhost

test
$database = new Connexion('127.0.0.1', 'root', '');
try{
    $database->Connecter();
}catch(Exception $e){
    exit($e->getMessage());
}
$database->Deconnecter();

Eléphant du PHP | 89 Messages

12 févr. 2010, 23:27

Bonsoir,

J'ai finalement réussi à me connecter à la base de donnée, en installant wampp serveur à la place de easy-php.
Je pense que le problème venait du mot de pass, mais avec wampp, j'ai rien mis et ca bien marcher.
Merci à vous tous de m'avoir aidé ;)
Cordialement