Warning: mysql_connect() [function.mysql-conn
itachi2255
Messages postés
17
Statut
Membre
-
Apatik Messages postés 6040 Statut Contributeur -
Apatik Messages postés 6040 Statut Contributeur -
Bonjour,
je debute en php et j'ai passé un bon moment à trouver une solution pour un message d'erreur qui apparait quand je tente de me conecter à ma bdd!
j'ai fais 3 page index.php , MySQL.class.php et MySQLException.class.php
code index:
<?php
/**
* Utilisation de la classe
*/
include ("MySQL.class.php");
include ("MySQLException.class.php");
try
{
$Mysql = new Mysql('localhost', 'base', 'login', '');
$Resulats = $Mysql->TabResSQL('SELECT login,password FROM user');
foreach ($Resulats as $Valeur)
{
echo $Valeur['login'];
echo $Valeur['password'];
}
}
catch (MySQLExeption $e)
{
echo $e -> RetourneErreur();
}
?>
*************************
code MySQL.class.php
<?php
class Mysql
{
private
$Serveur = '',
$Bdd = '',
$Identifiant = '',
$Mdp = '',
$Lien = '',
$Debogue = true,
$NbRequetes = 0;
/**
* Constructeur de la classe
* Connexion aux serveur de base de donnée et sélection de la base
*
* $Serveur = L'hôte (ordinateur sur lequel Mysql est installé)
* $Bdd = Le nom de la base de données
* $Identifiant = Le nom d'utilisateur
* $Mdp = Le mot de passe
*/
public function __construct($Serveur = 'localhost', $Bdd = 'base', $Identifiant = 'root', $Mdp = '')
{
$this->Serveur = $Serveur;
$this->Bdd = $Bdd;
$this->Identifiant = $Identifiant;
$this->Mdp = $Mdp;
$this->Lien=mysql_connect($this->Serveur, $this->Identifiant, $this->Mdp);
if(!$this->Lien && $this->Debogue)
throw new MySQLExeption('Erreur de connexion au serveur MySql!!!');
$Base = mysql_select_db($this->Bdd,$this->Lien);
if (!$Base && $this->Debogue)
throw new MySQLExeption('Erreur de connexion à la base de donnees!!!');
}
/**
* Retourne le nombre de requêtes SQL effectué par l'objet
*/
public function RetourneNbRequetes()
{
return $this->NbRequetes;
}
/**
* Envoie une requête SQL et récupère le résultât dans un tableau pré formaté
*
* $Requete = Requête SQL
*/
public function TabResSQL($Requete)
{
$i = 0;
$Ressource = mysql_query($Requete,$this->Lien);
$TabResultat=array();
if (!$Ressource and $this->Debogue) throw new MySQLExeption('Erreur de requête SQL!!!');
while ($Ligne = mysql_fetch_assoc($Ressource))
{
foreach ($Ligne as $clef => $valeur) $TabResultat[$i][$clef] = $valeur;
$i++;
}
mysql_free_result($Ressource);
$this->NbRequetes++;
return $TabResultat;
}
/**
* Retourne le dernier identifiant généré par un champ de type AUTO_INCREMENT
*
*/
public function DernierId()
{
return mysql_insert_id($this->Lien);
}
/**
* Envoie une requête SQL et retourne le nombre de table affecté
*
* $Requete = Requête SQL
*/
public function ExecuteSQL($Requete)
{
$Ressource = mysql_query($Requete,$this->Lien);
if (!$Ressource and $this->Debogue) throw new MySQLExeption('Erreur de requête SQL!!!');
$this->NbRequetes++;
$NbAffectee = mysql_affected_rows();
return $NbAffectee;
}
}
?>
*************************
code MySQLException.class.php
<?php
/**
* Gestion des erreurs avec les exeptions
*/
class MySQLExeption extends Exception
{
public function __construct($Msg) {
parent :: __construct($Msg);
}
public function RetourneErreur() {
$msg = '<div><strong>' . $this->getMessage() . '</strong>';
$msg .= ' Ligne : ' . $this->getLine() . '</div>';
return $msg;
}
}
?>
*******************
le probleme c'est quand je lance j'ai toujour le message d'erreur
"Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'login'@'localhost' (using password: NO) in C:\wamp\www\classe\MySQL.class.php"
est-ce que vous pouvez m'aider??
je debute en php et j'ai passé un bon moment à trouver une solution pour un message d'erreur qui apparait quand je tente de me conecter à ma bdd!
j'ai fais 3 page index.php , MySQL.class.php et MySQLException.class.php
code index:
<?php
/**
* Utilisation de la classe
*/
include ("MySQL.class.php");
include ("MySQLException.class.php");
try
{
$Mysql = new Mysql('localhost', 'base', 'login', '');
$Resulats = $Mysql->TabResSQL('SELECT login,password FROM user');
foreach ($Resulats as $Valeur)
{
echo $Valeur['login'];
echo $Valeur['password'];
}
}
catch (MySQLExeption $e)
{
echo $e -> RetourneErreur();
}
?>
*************************
code MySQL.class.php
<?php
class Mysql
{
private
$Serveur = '',
$Bdd = '',
$Identifiant = '',
$Mdp = '',
$Lien = '',
$Debogue = true,
$NbRequetes = 0;
/**
* Constructeur de la classe
* Connexion aux serveur de base de donnée et sélection de la base
*
* $Serveur = L'hôte (ordinateur sur lequel Mysql est installé)
* $Bdd = Le nom de la base de données
* $Identifiant = Le nom d'utilisateur
* $Mdp = Le mot de passe
*/
public function __construct($Serveur = 'localhost', $Bdd = 'base', $Identifiant = 'root', $Mdp = '')
{
$this->Serveur = $Serveur;
$this->Bdd = $Bdd;
$this->Identifiant = $Identifiant;
$this->Mdp = $Mdp;
$this->Lien=mysql_connect($this->Serveur, $this->Identifiant, $this->Mdp);
if(!$this->Lien && $this->Debogue)
throw new MySQLExeption('Erreur de connexion au serveur MySql!!!');
$Base = mysql_select_db($this->Bdd,$this->Lien);
if (!$Base && $this->Debogue)
throw new MySQLExeption('Erreur de connexion à la base de donnees!!!');
}
/**
* Retourne le nombre de requêtes SQL effectué par l'objet
*/
public function RetourneNbRequetes()
{
return $this->NbRequetes;
}
/**
* Envoie une requête SQL et récupère le résultât dans un tableau pré formaté
*
* $Requete = Requête SQL
*/
public function TabResSQL($Requete)
{
$i = 0;
$Ressource = mysql_query($Requete,$this->Lien);
$TabResultat=array();
if (!$Ressource and $this->Debogue) throw new MySQLExeption('Erreur de requête SQL!!!');
while ($Ligne = mysql_fetch_assoc($Ressource))
{
foreach ($Ligne as $clef => $valeur) $TabResultat[$i][$clef] = $valeur;
$i++;
}
mysql_free_result($Ressource);
$this->NbRequetes++;
return $TabResultat;
}
/**
* Retourne le dernier identifiant généré par un champ de type AUTO_INCREMENT
*
*/
public function DernierId()
{
return mysql_insert_id($this->Lien);
}
/**
* Envoie une requête SQL et retourne le nombre de table affecté
*
* $Requete = Requête SQL
*/
public function ExecuteSQL($Requete)
{
$Ressource = mysql_query($Requete,$this->Lien);
if (!$Ressource and $this->Debogue) throw new MySQLExeption('Erreur de requête SQL!!!');
$this->NbRequetes++;
$NbAffectee = mysql_affected_rows();
return $NbAffectee;
}
}
?>
*************************
code MySQLException.class.php
<?php
/**
* Gestion des erreurs avec les exeptions
*/
class MySQLExeption extends Exception
{
public function __construct($Msg) {
parent :: __construct($Msg);
}
public function RetourneErreur() {
$msg = '<div><strong>' . $this->getMessage() . '</strong>';
$msg .= ' Ligne : ' . $this->getLine() . '</div>';
return $msg;
}
}
?>
*******************
le probleme c'est quand je lance j'ai toujour le message d'erreur
"Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'login'@'localhost' (using password: NO) in C:\wamp\www\classe\MySQL.class.php"
est-ce que vous pouvez m'aider??
A voir également:
- Warning: mysql_connect() [function.mysql-conn
- Warning zone telechargement - Accueil - Outils
- Téléchargement et streaming illégal : voici les adresses des sites pirates que les FAI vont bloquer - Accueil - Services en ligne
- Symbole warning word ✓ - Forum Word
- Cpu fan fail warning control - Forum Matériel & Système
- Comment faire le symbole attention ✓ - Forum Loisirs / Divertissements
5 réponses
j'ai reussi a reglé le probleme c'est tout bete ^^
c'est au niveau de la structure l'appel du constructeur de la classe mysl il fallais juste mettre
$Mysql = new Mysql($Serveur = 'localhost', $Bdd = 'base', $Identifiant = 'root', $Mdp = '');
merci qd meme ;-)
c'est au niveau de la structure l'appel du constructeur de la classe mysl il fallais juste mettre
$Mysql = new Mysql($Serveur = 'localhost', $Bdd = 'base', $Identifiant = 'root', $Mdp = '');
merci qd meme ;-)
Apatik
Messages postés
6040
Statut
Contributeur
782
Ouais enfin ton code il est ultra moche et pas clair.. En une boucle, tu définis 3 fois tes variables... C'est quoi l'intérêt?
Bonjour,
Ca, c'est un code pompé auquel tu ne comprend pas grand chose malgré les commentaires.. Pourquoi forcément passer par de la POO? y'a pas vraiment de plus value, surtout dans le cas d'une connexion à une BDD unique.. Fait plus simple, et plus "à ta portée". Bref:
En regardant ton code que j'ai commenté, tu dois voir où ce situe l'erreur (grave à mon sens), et donc pouvoir la corriger facilement. Poste ici si malgré tout tu ne trouves pas, mais explique moi ce que tu ne comprend pas...
Ca, c'est un code pompé auquel tu ne comprend pas grand chose malgré les commentaires.. Pourquoi forcément passer par de la POO? y'a pas vraiment de plus value, surtout dans le cas d'une connexion à une BDD unique.. Fait plus simple, et plus "à ta portée". Bref:
class Mysql
{
private
$Serveur = '',
$Bdd = '',
$Identifiant = '',
$Mdp = '',
$Lien = '',
$Debogue = true,
$NbRequetes = 0;
//Ces valeurs sont les constantes que tu utiliseras lors de l'utilisation de la méthode "construct".
/**
* Constructeur de la classe
* Connexion aux serveur de base de donnée et sélection de la base
*
* $Serveur = L'hôte (ordinateur sur lequel Mysql est installé)
* $Bdd = Le nom de la base de données
* $Identifiant = Le nom d'utilisateur
* $Mdp = Le mot de passe
*/
public function __construct($Serveur = 'localhost', $Bdd = 'base', $Identifiant = 'root', $Mdp = '')
//Cette ligne me hérisse les poils.. Peut-être que ça marche (j'y crois pas), mais c'est une hérésie que de déclarer des variables quand on a besoin de leur valeur. Sans compter que ces variables sont déjà définies plus haut (en gras). Les valeurs à leur donner sont donc à remplir plus haut.
{
$this->Serveur = $Serveur;
$this->Bdd = $Bdd;
$this->Identifiant = $Identifiant;
$this->Mdp = $Mdp;
$this->Lien=mysql_connect($this->Serveur, $this->Identifiant, $this->Mdp);
//C'est donc cette ligne qui foire vu que tes variables sont définies à la oneagain, voir pas du tout.
if(!$this->Lien && $this->Debogue)
throw new MySQLExeption('Erreur de connexion au serveur MySql!!!');
$Base = mysql_select_db($this->Bdd,$this->Lien);
if (!$Base && $this->Debogue)
throw new MySQLExeption('Erreur de connexion à la base de donnees!!!');
}
En regardant ton code que j'ai commenté, tu dois voir où ce situe l'erreur (grave à mon sens), et donc pouvoir la corriger facilement. Poste ici si malgré tout tu ne trouves pas, mais explique moi ce que tu ne comprend pas...
je pense que le probleme viens de cette fonction mais j'ai verifier le code et tout est normal a mon sens.
l'appel dans la page index est correct aussi !
je suis aller meme a remplacer le constructeur de la classe et mis juste la requete avec les valeurs de la cnx a la base et c'est toujours pareil !!!
alors je comprends toujours pas d'où cela peux venir
merci de votre aide
l'appel dans la page index est correct aussi !
je suis aller meme a remplacer le constructeur de la classe et mis juste la requete avec les valeurs de la cnx a la base et c'est toujours pareil !!!
alors je comprends toujours pas d'où cela peux venir
merci de votre aide
Remplace
par
et
Par
Question. A quoi servent les variables "static" que tu déclare au début de ta classe si tu leur donnes de nouvelles valeur durant la construction?
Live free, learn free, help free, Happy Hacking!
Plus que tout en informatique, l'erreur est humaine.
$Serveur = '', $Bdd = '', $Identifiant = '',
par
$Serveur = 'localhost', $Bdd = '', $Identifiant = 'root',
et
public function __construct($Serveur = 'localhost', $Bdd = 'base', $Identifiant = 'root', $Mdp = '')
Par
public function __construct($Serveur, $Bdd, $Identifiant, $Mdp)
Question. A quoi servent les variables "static" que tu déclare au début de ta classe si tu leur donnes de nouvelles valeur durant la construction?
Live free, learn free, help free, Happy Hacking!
Plus que tout en informatique, l'erreur est humaine.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question