Probléme avec mysql_select_db
fandecarotte
-
fandecarotte -
fandecarotte -
Bonjour,
Je vient de migrer la partie dynamique(php/mysql) d'un site du local vers les serveurs de 1&1.
Mon code se présente comme ceci(avec des valeurs bidons vous aurez compris):
function dbconnectdb(){
$link = mysql_connect("serveurname", "machin", "mdp") or die("Impossible de se connecter : " . mysql_error());
if(!$link){
die ("Erreur lors de la connexion");
}
$db_selected = mysql_select_db("truc", $link);
if (!$db_selected) {
die ('Impossible de sélectionner la base de données : ' . mysql_error());
}
}
en retour j'ai cette erreur qui m'intrigues:
Impossible de sélectionner la base de données : Access denied for user 'machin' to database 'machin'
Cette bourrique me remplaces le nom de la base auquel je veut me connecter par le nom de l'user...
Et bien sûr si je remplaces machin(nom de la base dans mysql_connect()) par truc il me met le message:
Impossible de sélectionner la base de données : Access denied for user 'truc' to database 'truc'
Pas compris... dois je créer un user avec le même nom que la base :s ou alors je me goures qque part...vu que le select_db s'effectue il semble faire quand même le mysql_connect(sinon "die");
Merci de vos réponses
Je vient de migrer la partie dynamique(php/mysql) d'un site du local vers les serveurs de 1&1.
Mon code se présente comme ceci(avec des valeurs bidons vous aurez compris):
function dbconnectdb(){
$link = mysql_connect("serveurname", "machin", "mdp") or die("Impossible de se connecter : " . mysql_error());
if(!$link){
die ("Erreur lors de la connexion");
}
$db_selected = mysql_select_db("truc", $link);
if (!$db_selected) {
die ('Impossible de sélectionner la base de données : ' . mysql_error());
}
}
en retour j'ai cette erreur qui m'intrigues:
Impossible de sélectionner la base de données : Access denied for user 'machin' to database 'machin'
Cette bourrique me remplaces le nom de la base auquel je veut me connecter par le nom de l'user...
Et bien sûr si je remplaces machin(nom de la base dans mysql_connect()) par truc il me met le message:
Impossible de sélectionner la base de données : Access denied for user 'truc' to database 'truc'
Pas compris... dois je créer un user avec le même nom que la base :s ou alors je me goures qque part...vu que le select_db s'effectue il semble faire quand même le mysql_connect(sinon "die");
Merci de vos réponses
2 réponses
Salut,
Il faut effectivement créer un utilisateur avec mdp pour la base de données qui portera le même nom et utilisera le même mot de passe que celui que tu utilises dans la ligne $link.
Est-ce-que tu as essayé un truc du genre :
Comme ça tu es sûr que ça ne vient pas d'ailleurs dans ton code.
Sinon, regarde dans l'error log si tu y as accès.
@ pluche.
Fab.
Il faut effectivement créer un utilisateur avec mdp pour la base de données qui portera le même nom et utilisera le même mot de passe que celui que tu utilises dans la ligne $link.
Est-ce-que tu as essayé un truc du genre :
function dbconnectdb() { DEFINE ('DB_HOST', 'serveurname'); DEFINE ('DB_USER', 'machin'); DEFINE ('DB_PASSWORD', 'mdp'); DEFINE ('DB_NAME', 'truc'); $link = mysql_connect (DB_HOST, DB_USER, DB_PASSWORD) OR die ('La connexion a échoué pour la base : ' . mysql_error() ); if(!$link) { die ("Erreur lors de la connexion"); } $db_selected = mysql_select_db(DB_NAME, $link); if (!$db_selected) { die ('Impossible de sélectionner la base de données : ' . mysql_error()); } }
Comme ça tu es sûr que ça ne vient pas d'ailleurs dans ton code.
Sinon, regarde dans l'error log si tu y as accès.
@ pluche.
Fab.
@briiiiix oui ça fait doublon c'est parce que j'ai copié le code du manuel php + rajouté le or die que j'ai l'habitude de mettre...
@faboons
bah l'user existe vu que je me connecte à l'interface mysql de l'hébergeur avec(sorte de phpMyAdmin).
Euh je vois pas ce que ça change de mettre la valeur en constante(ou même en variable) plutôt que de l'écrire directement dans le paramètre de la fonction...m'enfin je vais essayer quand même.
Pour le log je sait pas comment accéder à ça mais j'ai un SHOW WARNING et un SHOW ERROR qui ets ON, cela ne devrait pas suffire?
@faboons
bah l'user existe vu que je me connecte à l'interface mysql de l'hébergeur avec(sorte de phpMyAdmin).
Euh je vois pas ce que ça change de mettre la valeur en constante(ou même en variable) plutôt que de l'écrire directement dans le paramètre de la fonction...m'enfin je vais essayer quand même.
Pour le log je sait pas comment accéder à ça mais j'ai un SHOW WARNING et un SHOW ERROR qui ets ON, cela ne devrait pas suffire?
if(!$link){
die ("Erreur lors de la connexion");}
Nous avons déja un "OR DIE dans ligne d'avant, c'est une repetition de la même condition"