Erreur mysql : SQLSTATE[28000] [1045] [Résolu/Fermé]

Signaler
Messages postés
140
Date d'inscription
samedi 19 mai 2012
Statut
Membre
Dernière intervention
12 juin 2017
-
Messages postés
140
Date d'inscription
samedi 19 mai 2012
Statut
Membre
Dernière intervention
12 juin 2017
-
Bonjour

J'ai ce script :

<?php
date_default_timezone_set('Europe/Paris');
$date = date('d/m/Y');
$heure = date('H:i:s');

$host = "mysql.hostinger.fr";
$user = "u776754505_cms";
$password = "monmotdepasse";
$db = "u776754505_mc";

try {
$connexion = new PDO('mysql:host'.$host.';dbname='.$db.'; charset=utf8', $user, $password, array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'));
} catch (PDOException $e) {
echo 'Connexion échouée : ' . $e->getMessage();
}
?>

dans un fichier php, quand je test en local ça me fait :

"Connexion échouée : SQLSTATE[HY000] [2002] Aucune connexion n?a pu ?tre ?tablie car l?ordinateur cible l?a express?ment refus?e."

sur serveur ça me donne ceci :

"Connexion échouée : SQLSTATE[28000] [1045] Access denied for user 'u776754505_cms'@'localhost' (using password: YES)"

Mes identifiants sont bons (j'ai vérifier), comment faire pour que cela fonctionne ?


Merci d'avance

6 réponses


Bonjour

As-tu vérifié dans le manuel la syntaxe pour une connexion à mysql avec PDO ?
Tu as oublié le = après "host" :
$connexion = new PDO('mysql:host='.$host....
Messages postés
140
Date d'inscription
samedi 19 mai 2012
Statut
Membre
Dernière intervention
12 juin 2017
17
Merci j'en encore un petit souci, en local (avec EasyPhp), il me dit

"hôte inconnu", tendis que sur serveur cela se passe comme il faut, y a t'il une config spéciale à mettre ?

Avec easyphp, ton hôe n'est certainement pas "mysql.hostinger.fr", mais probablement "localhost". De même que le user est probablement "root" et le mot de passe "" (vide). Quant à la base de données, L'as-tu bien créée avec le nom "u776754505_mc" ? L'as-tu seulement créée ?

Pour t'éviter de modifier tous ces paramètres chaque fois que tu passes d'easyphp au site en ligne, il vaut mieux les mettre dans un petit fichier inclus (par ex. identifiants.php) :
<?php
$host = ...;
$user = ...;
$password = ...;
$db = ...;
(il est préférable de ne pas mettre de ?> à la fin)

Et dans le script principal, tu remplaces ces lignes par
include identifiants.php;
Ce fichier sera différent en local et en ligne.
Quand tu transfères tes scripts de ton PC vers ton hébergeur, tu transfères les autres fichiers mais pas identifiants.php
Messages postés
140
Date d'inscription
samedi 19 mai 2012
Statut
Membre
Dernière intervention
12 juin 2017
17
Je test avec EasyPhp, mais avec les identifiants de la base de donnés dans la location du serveur web, dans le script il n'y a pas de problème, puisque sur le serveur ça fonctionne c'est juste quand je test avec EasyPhp ça ne fonctionne pas et c'est avec le même code.
Non, il n'y a pas de problème dans le script lui-même, je n'ai jamais dit le contraire.
Mais si tu utilises les identifiants que ton hébergeur t'a donnés pour ton site en ligne, ça ne risque pas de marcher avec easyphp. Il faut utiliser les identifiants de php, c'est ce que j'ai essayé de t'expliquer.
Messages postés
140
Date d'inscription
samedi 19 mai 2012
Statut
Membre
Dernière intervention
12 juin 2017
17
Ok, le problème c'est que j'ai du bidouiller les ports de EasyPhp pour ne pas être obliger de fermer skype quand j'utilise EsayPhp donc je ne peut pas passer par la base MySql locale. C'est pas grave ça fonctionne sur l'hébergeur donc sa va.

Merci pour ton aide