Bonjour,
quand je veux me connecter à ma base de donné MySQL qui est sur internet (je créer mon site en local et ma base de donnée est sur un site.
Mon code :

<?php try {$bdd = new PDO('mysql:host=http://mon-hebergeur.fr;dbname=Nom de la base de donnée', 'Nom d'utilisateur pour me connecter à PHP my admin', 'Mot de passe'); } catch(Exception $e) {die('Erreur : '.$e->getMessage()); } ?>

Merci d'avance et bonne journée :D

11 réponses


Lartak
Réponse acceptée

Bonjour.
Tu ne peux pas te connecter à ta base de données simplement avec le nom de ton hébergeur, ta base de données ne dépend pas uniquement de ton hébergeur, il faut certes un hébergement, mais également un serveur sur cet hébergement.
Ensuite, l'adresse IP d'un serveur n'est pas suffisante, car pour accéder au serveur depuis l'extérieur, il faut avoir ce que l'on appelle les droits root, ce que tous les types d'hébergements ne proposent pas, il faut avoir un serveur dédié en principe et avoir comme je l'ai dit les droits root.
Si tu veux travailler ton site en local, tu es censé également travailler avec une base de données qui elle aussi est en local.
Il ne faut pas mélanger le mode développement et le mode production.
Donc ce que tu peux faire à la rigueur, c'est d'aller sur ta base de données de ton serveur, d'exporter la base de données dont tu as besoin et de l'importer dans ton phpmyadmin sur ton ordi.
Ensuite, oui tu peux faire un fichier php qui te sert à te connecter à la base de données puis tu as deux solutions, soit faire uniquement une connexion pour ta base de données en local et modifier ce fichier lorsque tu passeras en mode production ou alors mettre dans le fichier les deux connections et faire une condition par rapport à l'adresse IP sur laquelle tu es, de cette manière, lorsque tu développeras en local ce sera la connexion locale qui sera effectuée et lorsque tu mettra en production ce sera l'autre qui sera faite.

SevDevSar
Réponse acceptée

Bonjour,

Comme Lartak11 a dit le mieux ces de tout travailler en local et puis quand tout et fini de tout envoyer sur ton hébergeur ou ta aussi une autre solution ces celle que moi personnellement je utilise ces que je travail directement en ligne, je utilise mon logiciel Phpstorme et je travail en direct sur mon hébergement et je utilise une script ou .htaccess pour bloquer tout accès aux visiteur et je autorise que mon ip a mon site tant que le site est pas terminer, j'aime travailler online a cause que ces pas pareil un serveur local et un hébergement, il y a des chose que tu peux pas faire sur un serveur local et d'autre qui ne vont peut-être pas marcher sur ton hébergeur, et encore une petit chose par exemple moi je utilise un hébergement chez GoDaddy et si je souhaite accéder a ma base de donner de puis chez moi je suis obliger d’aller dans le cPanel de mon hébergement et allez sur MySql Remote Access pour autorise l’accès a la base de donner en ajoutant l’ip de chez moi.

Quel est ton problème ?
Qu'est-ce que tu veux savoir ?

Imillix
Auteur

Mon problème c'est que je n'arrive pas à me connecter à ma base de donnée.
Je voudrais savoir ce que je dois faire pour que je puisse me connecter parce que je n'y arrive pas...

Mon hébergeur s'appelle sHost.ca, est-ce que je dois marquer comme URL :
https://shost.ca/phpmyadmin/ ou
https://shost.ca

Salut,
Si je ne dis pas de bêptise, lorsque tu vas sur l'administration de ton site, dans la partie mysql, tu dois avoir une adresse IP du genre 56.45.456.456 avec tes identifiants, c'est cela que tu dois rentrer et non le nom de site.
N'hésitez pas à me corriger les autres mais pour moi c'est comme cela sur godaddy.

Imillix
Auteur

Salut, il n'y a pas d'IP sur mon site, donc j'ai chercher pour avoir l'IP de mon site mais tout les tutos que j'ai vu ne sont que pour windows avec la commande ping / or je suis sous mac.
je ne sais pas comment faire

Imillix
Auteur

Excusez-moi, j'ai trouve un site permettant de la trouver mais je n'y arrive pas à me connecter
l'erreur :

Erreur : SQLSTATE[28000] [1045] Access denied for user 'web2969_db'@'ip-123.net-82-216-214.roubaix.rev.numericable.fr' (using password: YES)

je ne sais pas si c'est normal mais ça ne m'affiche pas les trois derniers chiffres ?

Si ça me les affiches mais devant donc je les ai modifié.

Imillix
Auteur

Salut,
donc pour que je puisse mettre les infos sur ma base, je dois la mettre en local puis l'exporter et l'importer sur le site et je dois ensuite changer chaque page de mon site avec la ligne de connexion à la base de donné par la nouvelle.

Mais je veux bien faire ça (de toute façon j'ai pas le choix :D ) mais est-ce que je peux mettre un fichier PHP avec cette ligne, je raccorde chaque page avec la commande :

<?php include ('connexion-bdd.php')?>

et dans cette page je marque :

<?php try {$bdd = new PDO('mysql:host=localhost;dbname=Nom de la base de donnée', 'root', 'root'); } catch(Exception $e) {die('Erreur : '.$e->getMessage()); } ?>

puis avant de mettre mon site en ligne, je change ce fichier avec les bons trucs.

Est-ce que cela pourrais marcher ?

Imillix
Auteur

Merci, enfaite, pour faire ce que je veux faire, il faut que je sois admin ?

Que tu sois admin où ?

Imillix
Auteur

J'ai trouvé, mon hébergeur m'a permis de me connecter à distance.
Merci à vous !
Et j'utilise sublime text 2 donc je n'ai pas la possibilité de me connecter à mon héberger grâce à celui-ci.