Page 1 sur 2
PHP connexion à la bdd
Posté : 07 févr. 2010, 19:46
par ferv21
Bonjour
J'ai un message d'erreur lorsque j'essaye de lancer ce script.
Voici le code de ma Connexion.class.php connexion.
<?php
class Connexion {
private $sgbdLogin;
private $sgbdMotDePasse;
private $sgbdServer;
public function __construct ($login, $mdp, $serveur) {
$this->sgbdLogin=$login;
$this->sgbdMotdePasse=$mdp;
$this->sgbdServer=$serveur;
}
public function Connecter() {
try {
$connexion= mysql_connect($this->sgbdLogin, $this->sgbdMotDePasse, $this->sgbdServer);
if (!$connexion) {
throw new exception ('Impossible de se connecter à la base de donnée');
}
echo 'Connexion réussi avec succès';
}
catch (Exception $e) {
echo 'Une erreur a été genérée:';
echo "<br/>";
$e->getMessage();
}
}
function public Deconnecter () {
mysql_close ($this->connexion);
}
}
?>
et voici mon fichier principal
<?php
include ("./Connexion.class.php");
$login=xxx;
$mdp=xxx;
$serveur=localhost;
$database= new Connexion ($login,$mdp,$serveur);
$database-> Connecter();
$database-> Deconnecter();
?>
J'ai le message d'erreur suivant:
Parse error: parse error in D:\Programme\EasyPHP5.3.0\www\Connexion_object\Connexion.class.php on line 16
Pouvez vous m'aider svp?
Cordialement
Re: PHP connexion à la bdd
Posté : 07 févr. 2010, 20:38
par stealth35
oui ta une erreur ligne 16

Re: PHP connexion à la bdd
Posté : 07 févr. 2010, 20:39
par ferv21
ah oui, mais la quelle :p
Re: PHP connexion à la bdd
Posté : 07 févr. 2010, 21:29
par stealth35
ah oui, mais la quelle :p
bah de syntax, on vois bien que l'accolade est de trop, t'utilise quelle éditeur ?
Re: PHP connexion à la bdd
Posté : 07 févr. 2010, 23:34
par ferv21
Notepad ++, vous pouvez me dire quelle accolade svp?
Re: PHP connexion à la bdd
Posté : 08 févr. 2010, 01:05
par stealth35
Notepad ++, vous pouvez me dire quelle accolade svp?
bah la ligne 16 surprime le, tu vois qu'il ferme la class ?
Re: PHP connexion à la bdd
Posté : 08 févr. 2010, 11:47
par ferv21
Bonjour,
A votre avis si j'utilise Eclipse PHP, est ce que les erreurs de ce types, je pourrais les déceler ?
Cordialement
Re: PHP connexion à la bdd
Posté : 08 févr. 2010, 12:46
par zeus
Avant de penser utiliser un IDE, pense à indenter ton code.
Par exemple, si je prend le code de départ et que je l'indente correctement, voici le résultat :
<?php
class Connexion {
private $sgbdLogin;
private $sgbdMotDePasse;
private $sgbdServer;
public function __construct ($login, $mdp, $serveur) {
$this->sgbdLogin=$login;
$this->sgbdMotdePasse=$mdp;
$this->sgbdServer=$serveur;
}
public function Connecter() {
try {
$connexion= mysql_connect($this->sgbdLogin, $this->sgbdMotDePasse, $this->sgbdServer);
if (!$connexion) {
throw new exception ('Impossible de se connecter à la base de donnée');
}
echo 'Connexion réussi avec succès';
}
catch (Exception $e) {
echo 'Une erreur a été genérée:';
echo "<br/>";
$e->getMessage();
}
}
function public Deconnecter () {
mysql_close ($this->connexion);
}
}
?>
Et là, pour savoir si tu as tout fermé ou pas, c'est beaucoup plus simple.
De plus, avec Notepad++, en posant le curseur sur une accolade, il te montre l'accolade ouvrante la plus proche, ce qui doit aussi te permettre de t'assurer que ton code est bien formaté.
Par contre, en prenant le code de départ, je ne trouve pas de soucis d'accolades

j'ai raté un truc ?
Re: PHP connexion à la bdd
Posté : 08 févr. 2010, 12:50
par ferv21
Oui c'est vrai que j'oubli toujours d'indenter le code, c'est tellement mieux comme ca.
Mais c'est vrai que avec notepad, j'utilise souvent la méthode du curseur mais je n'ai déceler aucun problème.
A voir
Cordialement
Re: PHP connexion à la bdd
Posté : 10 févr. 2010, 01:36
par ferv21
Bonsoir à tous,
J'ai corrigé une faute dans ma class Connexion. J'ai appeler function public au lieu de public function avant dernière ligne.
Mais c'est n'est pas résolu pour autant.
<?php
class Connexion {
private $sgbdLogin;
private $sgbdMotDePasse;
private $sgbdServer;
public function __construct ($login, $mdp, $serveur) {
$this->sgbdLogin=$login;
$this->sgbdMotdePasse=$mdp;
$this->sgbdServer=$serveur;
}
public function Connecter() {
try {
$link= mysql_connect($this->sgbdLogin, $this->sgbdMotDePasse, $this->sgbdServer);
if (!$link) {
throw new exception ('Impossible de se connecter à la base de donnée');
}
echo 'Connexion réussi avec succès';
}
catch (Exception $e) {
echo 'Une erreur a été genérée:';
echo "<br/>";
$e->getMessage();
}
}
public function Deconnecter () {
mysql_close ($this->link);
}
}
?>
mon index
<?php
include ("./Connexion.class.php");
$login='root';
$mdp='mrlover';
$serveur='localhost';
$database= new Connexion ($login,$mdp,$serveur);
$database-> Connecter();
$database-> Deconnecter();
?>
Puis j'ai les messages d'erreur suivant:
Warning: mysql_connect() [function.mysql-connect]: php_network_getaddresses: getaddrinfo failed: Hôte inconnu. in D:\Programme\EasyPHP5.3.0\www\nv\Connexion.class.php on line 18
Warning: mysql_connect() [function.mysql-connect]: [2002] php_network_getaddresses: getaddrinfo failed: Hôte inconnu. (trying to connect via tcp://root:3306) in D:\Programme\EasyPHP5.3.0\www\nv\Connexion.class.php on line 18
Warning: mysql_connect() [function.mysql-connect]: php_network_getaddresses: getaddrinfo failed: Hôte inconnu. in D:\Programme\EasyPHP5.3.0\www\nv\Connexion.class.php on line 18
Une erreur a été genérée:
Notice: Undefined property: Connexion::$link in D:\Programme\EasyPHP5.3.0\www\nv\Connexion.class.php on line 32
Warning: mysql_close() expects parameter 1 to be resource, null given in D:\Programme\EasyPHP5.3.0\www\nv\Connexion.class.php on line 32
Pouvez vous m'aider s'il vous plait?
Re: PHP connexion à la bdd
Posté : 10 févr. 2010, 02:03
par stealth35
http://www.php.net/mysql_connect
sont pas dans le bon ordre les parametres
il faut : server, login, pass
dans ton code c'est : login, pass, server
Re: PHP connexion à la bdd
Posté : 10 févr. 2010, 12:59
par ferv21
Merci beaucoup, en regardant la doc j'ai vu l'importance de les mettre dans le bon ordre.
Mais j'ai un autre problème:
<?php
class Connexion {
private $sgbdLogin;
private $sgbdMotDePasse;
private $sgbdServer;
public function __construct ($serveur,$login,$mdp) {
$this->sgbdLogin=$login;
$this->sgbdMotdePasse=$mdp;
$this->sgbdServer=$serveur;
}
public function Connecter() {
try {
$link= mysql_connect($this->sgbdServer,$this->sgbdLogin,$this->sgbdMotDePasse );
if (!$link) {
throw new exception ('Impossible de se connecter à la base de donnée');
}
echo 'Connexion réussi avec succès';
}
catch (Exception $e) {
echo 'Une erreur a été genérée:';
echo "<br/>";
$e->getMessage();
}
}
public function Deconnecter () {
mysql_close ($this->link);
}
}
?>
Warning: mysql_connect() [function.mysql-connect]: Accès refusé pour l'utilisateur: 'root'@'@localhost' (mot de passe: NON) in D:\Programme\EasyPHP5.3.0\www\nv\Connexion.class.php on line 17
Une erreur a été genérée:
Notice: Undefined property: Connexion::$link in D:\Programme\EasyPHP5.3.0\www\nv\Connexion.class.php on line 31
Warning: mysql_close() expects parameter 1 to be resource, null given in D:\Programme\EasyPHP5.3.0\www\nv\Connexion.class.php on line 31
J'utilise Easyphp, et j'ai changer le mot de passe, pourtant j'arrive bien à me connecter en mode dos avec cette commande -u root -p xxxxxxx
Est ce que je doit créer une variable link?
Re: PHP connexion à la bdd
Posté : 10 févr. 2010, 13:14
par zeus
Je profite de cette intervention pour rappeler que les messages d'erreur sont parlants et donne la source du problème dans la plupart des cas.
Ici,
Warning: mysql_connect() [function.mysql-connect]: [2002] php_network_getaddresses: getaddrinfo failed: Hôte inconnu. (trying to connect via tcp://root:3306) in D:\Programme\EasyPHP5.3.0\www\nv\Connexion.class.php on line 18
Si on lit le message, on peut voir que mysql_connect a essayé de se connecter à l'hôte "tcp://root:3306".
Et dans ton dernier message d'erreur, si on regarde bien, on vois qu'il a tenté de se connecter avec "'root'@'@localhost'" (un @ de trop).
Tu n'aurais pas donné "@localhost" comme host par hasard ?
Re: PHP connexion à la bdd
Posté : 10 févr. 2010, 16:33
par ferv21
Bonjour,
Merci de m'avoir répondu. Je n'ai pas mis de @ pour localhost.
Ca doit être une autre erreur sans doute, mais je n'arrive pas a résoudre ce problème.
Cordialement
Re: PHP connexion à la bdd
Posté : 10 févr. 2010, 16:51
par stealth35
Bonjour,
Merci de m'avoir répondu. Je n'ai pas mis de @ pour localhost.
Ca doit être une autre erreur sans doute, mais je n'arrive pas a résoudre ce problème.
Cordialement
mais la class elle est pour toi ou pas, parce que ca existe deja : PDO (
http://php.net/manual/fr/book.pdo.php)