Comment Se connecter à MySQL avec PDO?

Fermé
Profil bloqué - 26 mai 2011 à 03:20
maka54 Messages postés 699 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 - 2 oct. 2012 à 15:00
Bonjour,

Je suis en train de suivre un tuto et je comprend pas le passage ou il nous demande de ce connecter à MyQSL avec PDO?????

A voir également:

21 réponses

arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
Modifié par arthezius le 26/05/2011 à 07:09
Salut,
Tu as tout sur cette page: https://openclassrooms.com/fr/courses/918836-concevez-votre-site-web-avec-php-et-mysql/914293-lisez-des-donnees
« La recherche commence là où s'arrête la connaissance. »
1
Profil bloqué
26 mai 2011 à 14:40
Hhhhhhhh vous croyez quoi? que le tuto que je parl c'est le quel?
Il suffit de donner un lien et tous est resolut!
Je comprend pas ce tuto!

Pdo c'est bien beau de nous en parler mais une explication plus simple serais plus sage!
Je connais rien sur les BDD..
1
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
26 mai 2011 à 15:20
Hey oh! Tu vas te détendre.

Est-ce que tu nous as dit de quel tuto tu parlais? non
Est-ce que je suis censé deviner celui dont tu parlais? non
Est-ce que tu nous as expliquer précisément ce qui te bloque dans ce tuto? non

Donc tu vas nous faire le plaisir de nous dire précisément ce qui te bloque dans ce tuto et pourquoi ça te bloque.
Ensuite, on pourra réfléchir à une solution précise à ton problème.
0
Zhp Messages postés 198 Date d'inscription mercredi 27 avril 2011 Statut Membre Dernière intervention 5 mars 2013 37
26 mai 2011 à 15:02
Commence le tuto par le début :
https://openclassrooms.com/fr/courses/918836-concevez-votre-site-web-avec-php-et-mysql/913655-quest-ce-quune-base-de-donnees

Il explique clairement la mise en place d'une base de donnée, des bases de l'administration et comment faire des requêtes simple ^^
1
J'ai commencer tous le site du zéro du début arriver à la programmation d'une base de donnée la tous par en Vries ,je ne comprend rien! créer la base de donnée ok je c'est faire, créer ensuite la table avec ces entrées ok, je c'est faire aussi ensuite, ils prononcent la phrase "activer le MySQL avec PDO" mais qu'est ce que c'est que ce PDO! ils ont oublier de le dire plus précisément, c'est un logiciel? ok j'iai installer WAMP juste pour ça!
Clique droit sur la barre des taches, PDO est activer et après...
Je reste sur CPANEL
Et je bloque sur ma base de donnée avec ces tables qui me sert strictement a rien!...
0
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
26 mai 2011 à 17:27
Je cite:
Bonne question ! En effet, PHP propose plusieurs moyens de se connecter à une base de données MySQL :

-    L'extension mysql_ : ce sont des fonctions qui permettent d'accéder à une base de données MySQL et donc de communiquer avec MySQL. Leur nom commence toujours par mysql_. Toutefois, ces fonctions sont vieilles et on recommande de ne plus les utiliser aujourd'hui.
-    L'extension mysqli_ : ce sont des fonctions améliorées d'accès à MySQL. Elles proposent plus de fonctionnalités et sont plus à jour.
-    L'extension PDO : c'est un outil complet qui permet d'accéder à n'importe quel type de base de données. On peut donc l'utiliser pour se connecter aussi bien à MySQL que PostgreSQL ou Oracle.

C'est sur la page que je t'ai mis en lien et que tu dis avoir lu.

Sur cette même page:
Normalement, PDO est activé par défaut. Pour le vérifier, faites un clic gauche sur l'icône de WAMP dans la barre des tâches, puis allez dans le menu PHP / Extensions PHP et vérifiez que php_pdo_mysql est bien coché.


Et encore:
Voici donc comment on doit faire pour se connecter à MySQL via PDO sur la base test :
<?php
$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');
?>


Tu es sur d'avoir bien regardé cette page?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Zhp Messages postés 198 Date d'inscription mercredi 27 avril 2011 Statut Membre Dernière intervention 5 mars 2013 37
Modifié par Zhp le 26/05/2011 à 16:23
PDO est objet PHP. Il est introduit dans les fonction native par un module de PHP. C'est une couche d'abstraction pour utiliser les bases de données avec PHP. Pour pouvoir utiliser toute cela il faut évidement avoir d'installer apache, PHP et MySQL sur une machine, pas obligatoirement Wamp.
Pour utiliser l'objet PDO il faut en crée une instance en lui passant les parametre de connection :
<?php   
$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');   
?>


ici on déclare une nouvelle instance de PDO nommé $bdd. Les paramètres indique le type de serveur (mysql) le host (adresse du serveur de bdd) le nom de la base (bdname) et enfin le nom d'utilisateur (root) et le mdp ( ici il est vide donc = '')

think for yourself, question authority...
0
Profil bloqué
26 mai 2011 à 16:25
J'ai wamp, enfin y as un bidule qui apparait quand je le lance dans la barre de windose ya aucun logiciel qui ce lance, a croire que c'est normal...
Ce code:

<?php
$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');
?>

Faut le mètre ou? dans mes codes php?
0
Zhp Messages postés 198 Date d'inscription mercredi 27 avril 2011 Statut Membre Dernière intervention 5 mars 2013 37
26 mai 2011 à 16:32
Oui ! Tu place ce code dans les fichiers qui exécute des requêtes SQL. Il faut déclarer l'instance pour l'utiliser par la suite pour faire des requêtes.
0
Hum excuse moi d'insister un peut mais je veut par exemple avoir des commentaires sur mes articles le place ou? dans Article1.php par exemple?
0
Zhp Messages postés 198 Date d'inscription mercredi 27 avril 2011 Statut Membre Dernière intervention 5 mars 2013 37
26 mai 2011 à 16:51
euh je connait pas la structure de ton site... C'est simple : tu veux faire une requête en base ? tu utilise PDO. Après tu place le code direct dans ton fichier ou tu le place dans un fichier à par que tu inclue au besoin.
0
Profil bloqué
26 mai 2011 à 16:57
C'est facile rend y toi, et clique droit tu as tous les codes de ma structure.

Utilise PDO, mais c'est quoi ce truk! il est introuvable, il ce manipule pas on dirais!
0
Bonjour

j'ai le même problème de connexion avec le PDO.

j'ai suivis le tutu du siteduzero à la lettre mais je n'arrive toujours pas à me connecter à ma base de donnée.

php_pdo_mysql est bien activer quand je lance la connexion

?php
try
{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$connexion = new PDO('mysql:host=localhost;dbname=test', 'root', '', $pdo_options);
}
catch (exception $e)
{
die('Erreur : '.$e->getMessage());
}
?>

Voila comment mysql me répond

Warning: PDO::__construct() [pdo.--construct]: [2002] Aucune connexion n'a pu être établie car l'ordinateur cible l'a (trying to connect via tcp://localhost:3306) in C:\Wampee-2.1-beta-2\www\base\lire.php on line 5

la vraiment je suis bloquer merci !
0
Bonjour à tous

Ben voila j'ai exactement le même prob vous dites qu'il faut écrire la requête suivante pour se connecter à MySQL via pdo sur la base test:
<?php
$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');
?>
Mais cette requête on l'écrit ou? je ne comprends pas, j'ai passé toute la journée pour savoir ou on écrit ces requêtes mais rien du tout.

Merci pour vos réponce
0
OK va suivre ce tutos !!

http://www.siteduzero.com/tutoriel-3-14506-lire-des-donnees.html#ss_part_1
0
Bon avec wamp c'est très compliqué de se connecter dans sa base de donée

avec PDO donc je suis passer par EasyPhp et là tous beigne à merveille !!!!

essayez pour voir ?
0
lebidouilleur
1 oct. 2012 à 17:58
.... Après tout ce temps passé, quelqu'un a t'il "LA" solution a notre problème, car si je débarque un peu tardivement sur ce post, je suis bloqué au même endroit....

Et j'ai beau avoir tout repris plusieurs fois l'intégralité du Tuto, rien n'y a fait.

quand a passer par EasyPhp... ben on est plus dans le Tuto.. pour la suite c'est pas evident.

D'avance Merci
0
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
1 oct. 2012 à 20:19
Je l'utilise sans problème sur Wamp et j'ai rien fais de précis.
Je pense qu'il s'agit surtout de bien comprendre et adapter les exemples du Site du Zéro.

<?php
$bdd = new PDO('mysql:host=serveur;dbname=nom_bdd', 'identifiant_bdd', 'mot_de_passe_bdd');
?>

Il faut adapter les éléments en gras.
serveur: si vous travaillez en local, il faut le mettre sur "localhost".
nom_bdd: nom de la base de donnée.
identifiant_bdd: nom d'utilisateur pour la connexion.
mot_de_passe_bdd: mot de passe correspondant.
L'identifiant est souvent par défaut sur "root" et le mot de passe vide.
0
lebidouilleur
1 oct. 2012 à 21:18
Merci pour ta réponse Arthezius,

Mais au risque de paraitre stupide, tu la copies OU cette séquence de code PHP ??

Perso, en phpMyadmin, je clique sur SQL, et j'aurai tendance a le copier dans la "fenêtre " en dessous (Exécuter une ou des requêtes SQL sur le serveur "localhost":), et faire executer, bien sur en tenant compte des paramètres (quoique la , j'ai les mêmes... le pb ne devrait pas venir de là...)

Mon soucis, c'est juste apres... tout passe en rouge,

""
requête SQL:

<?php $bdd = new PDO('mysql:host=localhost;dbname=test', 'root');

MySQL a répondu:Documentation
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '<?php
$bdd = new PDO('mysql:host=localhost;dbname=test', 'root')' at line 1


""

Et La, .. j'avoue je decroche... aurais tu une idée ??

Merci
0
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
1 oct. 2012 à 23:09
T'a base de donnée s'appelle "test" ?
J'ai un doute sur le sujet...
Dans phpmyadmin tu peux créer une base de donnée.
Dans cette base de donnée tu pourra créer des tables.
Quelle est ton identifiant MySql?
Il manque également ton mot de passe.

<?php
$bdd = new PDO('mysql:host=localhost;dbname=test', 'root');
?>

Vérifie ce qui est en gras.
Faut pas mettre "test" comme base de donnée juste parce que l'exemple donne comme base de donnée "test".
C'est un exemple qu'il faut adapter.

Si tu n'a pas défini de mot de passe, laisse le champ vide comme cet exemple du site du zéro:
<?php
$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');
?>
0
lebidouilleur86 Messages postés 7 Date d'inscription mardi 2 octobre 2012 Statut Membre Dernière intervention 2 octobre 2012
2 oct. 2012 à 08:36
Je dois etre bien bouché.... ca ne veut pas passer.
-je suis bien en "localhost"
-la base, est celle de "test" créée automatiquement lors de l'install et dans laquelle j'ai créée une table "essais"
-le login, "root" sans pwd, et j'ai essayé avec un login créé pour la circonstance, "rc" pwd "123456"

ce qui me fait :
""
<?php
$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');
?>

""
Resultat :

"
Erreur

Il semble qu'il y ait une erreur dans votre requête SQL. Le message ci-bas peut vous aider à en trouver la cause.

ERROR: Ponctuation invalide @ 1
STR: <?
SQL: <?php
$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');<?php
$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');<?php
$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');


requête SQL:

<?php $bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');

MySQL a répondu:Documentation
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '<?php
$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '')' at line 1


""

et rien n'y fait.....
0
maka54 Messages postés 699 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 80
2 oct. 2012 à 11:22
ce code doit etre placé dans un fichier php

au vue des messages d'erreur, on dirait que tu le test dans phpmyadmin ....
0
lebidouilleur86 Messages postés 7 Date d'inscription mardi 2 octobre 2012 Statut Membre Dernière intervention 2 octobre 2012
2 oct. 2012 à 11:33
... Salut Maka54,

Donc du coup, j'en revient a ma question 1ere ...

Ou et comment lance t'on ces lignes de code ??
Question bête et basique, je n'en doute pas, mais quand on débute....
et si j'ai réussi a suivre le Tuto (celui du site du Zéro) jusque la, ben , La je suis bloqué

Merci
0
maka54 Messages postés 699 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 80
2 oct. 2012 à 11:38
tu places ce code dans une page php

-------------------------------------------------

<?php
$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');
?> 


cette ligne permet de te connecter à la base en php

et ensuite tu pourras faire tes requetes et afficher tes résultats sur ton site
0
maka54 Messages postés 699 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 80
2 oct. 2012 à 11:39
et à la question comment lance-ton la ligne de code

tu n'as qu'a appelé le fichier correspondant dans ton navigateur
0
lebidouilleur86 Messages postés 7 Date d'inscription mardi 2 octobre 2012 Statut Membre Dernière intervention 2 octobre 2012
2 oct. 2012 à 12:00
Haaaa... !! , d'accord.
Donc si j'ai bien compris, tu crées un fichier toto.php, avec le code dedans, puis tu le lances a travers IE ou firefox ?

J'essaye de suite
0
lebidouilleur86 Messages postés 7 Date d'inscription mardi 2 octobre 2012 Statut Membre Dernière intervention 2 octobre 2012
2 oct. 2012 à 12:21
Heu la page blanche , après avoir chargé mon fichier sur Ie , c'est normal ?
0
lebidouilleur86 Messages postés 7 Date d'inscription mardi 2 octobre 2012 Statut Membre Dernière intervention 2 octobre 2012
2 oct. 2012 à 12:36
Mon pb est toujours le meme....

Je m'explique :

Pour continuer, je retourne dans ¨Phpmyadmin
et dans le Tuto on a :

""
Voici la première requête SQL que nous allons utiliser :

Code : PHP - Sélectionner
1 SELECT * FROM jeux_video

Cela peut se traduire par : « Prendre tout ce qu'il y a dans la table jeux_video ».
Analysons chaque terme de cette requête.
SELECT : en langage SQL, le premier mot indique quel type d'opération doit effectuer MySQL. Dans ce chapitre, nous ne verrons que SELECT. Ce mot-clé demande à MySQL d'afficher ce que contient une table.

* : après le SELECT, on doit indiquer quels champs MySQL doit récupérer dans la table. Si on n'est intéressé que par les champs « nom » et « possesseur », il faudra taper :
SELECT nom, possesseur FROM jeux_video

Si vous voulez prendre tous les champs, tapez *. Cette petite étoile peut se traduire par « tout » : « Prendre tout ce qu'il y a... ».
FROM : c'est un mot de liaison qui se traduit par « dans ». FROM fait la liaison entre le nom des champs et le nom de la table.

jeux_video : c'est le nom de la table dans laquelle il faut aller piocher.


""
Si je lance la requête en direct dans la fenêtre SQL , ça fonctionne sans pb.
Par contre , c'est la que ça se gatte, et ou je n'y comprends plus rien .

""

Effectuons la requête avec la méthode que l'on vient de découvrir :

Code : PHP - Sélectionner
1
2
3 <?php
$reponse = $bdd->query('SELECT * FROM jeux_video');
?>

$reponse contient maintenant la réponse de MySQL.


""

si je lance ces 3 lignes de code dans cette même fenêtre SQL , la c'est la cata,
Pb de syntaxe a chaque fois....
0
maka54 Messages postés 699 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 80
Modifié par maka54 le 2/10/2012 à 12:52
tu confond phhpmyadmin et PHp


dans phpmyadmin tu teste la requete directement :

SELECT * FROM jeux_video 



en PHP, tu dois d'abord tu connecter à la base, puis executer la requete
<?php 
$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', ''); 

$reponse = $bdd->query('SELECT * FROM jeux_video');  
?>  

mais ce second code ne s'éxecute pas dans phphmyadmin
0
lebidouilleur86 Messages postés 7 Date d'inscription mardi 2 octobre 2012 Statut Membre Dernière intervention 2 octobre 2012
2 oct. 2012 à 12:59
Dites moi, si je fais une blague,

J'ai laissé tomber le bloc-note et passe par notepad++.

La j'ai créer le fichier avec les 3 lignes de code, puis j'ai enregistré ce fichier en "essais.php" dans le rep \wamp\www . Et du navigateur, je lance
"http://localhost/essais.php". ( et ca a l'air de marcher..)

Si c'est bien ça , tout les lignes de code a suivre, viendront se mettre dans des fichiers que je lancerai de le même manière...

Je me "gourre " encore, ou j'ai fini par comprendre le B A ba du truc ?

Merci de votre patience.
0
maka54 Messages postés 699 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 80
2 oct. 2012 à 13:08
c'est exactement çà
0
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
2 oct. 2012 à 13:56
Bidouilleur: il aurait été préférable que tu créé ton propre topic, sinon on va pas s'en sortir au niveau des réponses.

Maka54: pardon si j'ai insisté sur certains point mais je préférai m'assurer qu'on parlait bien le même langage (on sais jamais).
As-tu bien vérifié que l'extension PDO est bien installé?
extension=php_pdo_mysql.dll

A vérifier dans le fichier php.ini et/ou avec la fonction phpinfo().
0