Extension PDO
Résolu/Fermé
troubadour2
Messages postés
277
Date d'inscription
vendredi 11 juin 2010
Statut
Membre
Dernière intervention
19 juin 2016
-
16 juil. 2011 à 19:03
troubadour2 Messages postés 277 Date d'inscription vendredi 11 juin 2010 Statut Membre Dernière intervention 19 juin 2016 - 1 août 2011 à 14:18
troubadour2 Messages postés 277 Date d'inscription vendredi 11 juin 2010 Statut Membre Dernière intervention 19 juin 2016 - 1 août 2011 à 14:18
A voir également:
- Extension PDO
- Extension dat - Guide
- Changer extension fichier - Guide
- Extension .bin - Guide
- Extension 7z - Guide
- Extension odt - Guide
20 réponses
hervé56
Messages postés
268
Date d'inscription
lundi 15 novembre 2010
Statut
Membre
Dernière intervention
25 mars 2017
10
17 juil. 2011 à 15:44
17 juil. 2011 à 15:44
je sais pas ce qu'il y a entre tes parenthèses alors voila comment je fait :
// force la conection en utf-8 $option = array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"); $pdo = new PDO('mysql:host=' . HOTE_BASE . ';dbname=' . NOM_BASE, USER_BASE, PASS_BASE, $option);
hervé56
Messages postés
268
Date d'inscription
lundi 15 novembre 2010
Statut
Membre
Dernière intervention
25 mars 2017
10
16 juil. 2011 à 20:12
16 juil. 2011 à 20:12
ca sert a rien de coller ces 30 lignes, bref
1/ tu instancie ton objet PDO
2/ tu cree ta requete
3/ tu la passe dans ton objet
1:
$pdo = new tonObjet_PDO;
2:
$sql = "select * from ta_table";
3:
$tableau_retourné = $pdo->query($sql)->fetchAll(PDO::FETCH_ASSOC);
voila un exemple ultra grossier
1/ tu instancie ton objet PDO
2/ tu cree ta requete
3/ tu la passe dans ton objet
1:
$pdo = new tonObjet_PDO;
2:
$sql = "select * from ta_table";
3:
$tableau_retourné = $pdo->query($sql)->fetchAll(PDO::FETCH_ASSOC);
voila un exemple ultra grossier
troubadour2
Messages postés
277
Date d'inscription
vendredi 11 juin 2010
Statut
Membre
Dernière intervention
19 juin 2016
1
16 juil. 2011 à 23:17
16 juil. 2011 à 23:17
Bonjour et merci hervé56,
Je vois que tu es toujours fidèle c'est génial.
En fait pour qu'on puisse m'expliquer j'ai toujours l'impression qu'il faut mettre un maximum de code.
Ok je vais essayer de comprendre tes explications et me mettre à l'oeuvre.
A+
Je vois que tu es toujours fidèle c'est génial.
En fait pour qu'on puisse m'expliquer j'ai toujours l'impression qu'il faut mettre un maximum de code.
Ok je vais essayer de comprendre tes explications et me mettre à l'oeuvre.
A+
troubadour2
Messages postés
277
Date d'inscription
vendredi 11 juin 2010
Statut
Membre
Dernière intervention
19 juin 2016
1
17 juil. 2011 à 11:03
17 juil. 2011 à 11:03
Bonjour
Tu peux me dire ce qui ne va pas s'il te plait "ligne d'erreur".
Tu peux me dire ce qui ne va pas s'il te plait "ligne d'erreur".
$bdd = new PDO(.........); $sql = "SELECT * FROM menu WHERE Id_page = :id_page"; $resultat = $bdd->prepare($sql); $resultat->execute(array(":id_page" => $_ENV["id_page"])); $tabl_result = $bdd->query($resultat)->fetchAll(PDO::FETCH_ASSOC);
Notice: Undefined variable: bdd in D:\EasyPHP-5.3.3.1\www\site_clique\fonction\fonction.php on line 66 Fatal error: Call to a member function prepare() on a non-object in D:\EasyPHP-5.3.3.1\www\site_clique\fonction\fonction.php on line 66
hervé56
Messages postés
268
Date d'inscription
lundi 15 novembre 2010
Statut
Membre
Dernière intervention
25 mars 2017
10
17 juil. 2011 à 11:13
17 juil. 2011 à 11:13
pdo est activé nativement avec easy php ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
troubadour2
Messages postés
277
Date d'inscription
vendredi 11 juin 2010
Statut
Membre
Dernière intervention
19 juin 2016
1
17 juil. 2011 à 15:00
17 juil. 2011 à 15:00
Ben en fait je n'ai pas trouvé la ligne dans le fichier php.ini
extension=php_pdo.dll
il y a juste celle-ci
extension=php_pdo_mysql.dll
extension=php_pdo.dll
il y a juste celle-ci
extension=php_pdo_mysql.dll
troubadour2
Messages postés
277
Date d'inscription
vendredi 11 juin 2010
Statut
Membre
Dernière intervention
19 juin 2016
1
17 juil. 2011 à 16:57
17 juil. 2011 à 16:57
entre mess parentheses il y a la connexion à ma BDD que je n'ai pas mis.....
pour ne pas surcharger le post...
malheureusement ça ne veux toujours pas fonctionner.
Merci de ton aide
pour ne pas surcharger le post...
malheureusement ça ne veux toujours pas fonctionner.
Merci de ton aide
hervé56
Messages postés
268
Date d'inscription
lundi 15 novembre 2010
Statut
Membre
Dernière intervention
25 mars 2017
10
17 juil. 2011 à 18:11
17 juil. 2011 à 18:11
essaie sur ton serveur si t'en a un
pask ca doit marcher, ca vien surement d'easy php
essaie de regarder en faisant un phpinfo()
pask ca doit marcher, ca vien surement d'easy php
essaie de regarder en faisant un phpinfo()
troubadour2
Messages postés
277
Date d'inscription
vendredi 11 juin 2010
Statut
Membre
Dernière intervention
19 juin 2016
1
18 juil. 2011 à 00:14
18 juil. 2011 à 00:14
Bonjour
Je pense plutot que ma fonction n'est pas bonne, qu'en penses tu ?
Je pense plutot que ma fonction n'est pas bonne, qu'en penses tu ?
hervé56
Messages postés
268
Date d'inscription
lundi 15 novembre 2010
Statut
Membre
Dernière intervention
25 mars 2017
10
18 juil. 2011 à 10:55
18 juil. 2011 à 10:55
y a pas 50 solutions, si tu initialise un objet PDO et que tu lui passe une bonne requete ca doit marcher, a part si easyphp n'accepte pas nativement le PDO
troubadour2
Messages postés
277
Date d'inscription
vendredi 11 juin 2010
Statut
Membre
Dernière intervention
19 juin 2016
1
18 juil. 2011 à 15:47
18 juil. 2011 à 15:47
Bonjour
Voilà j'ai initialisé mon objet PDO ça c'est bon.
Je voudrais utiliser la methode "binParam()" avec les fameuses requètes préparées.
Par contre ma connexion à ma BDD est dans un fichier externe.
Peux tu me donner quelques infos pratique sur le net c'est quelque peu flou les explications, enfin pour moi puisque je commence avec PDO.
je te remercie.
Voilà j'ai initialisé mon objet PDO ça c'est bon.
$bdd = new PDO('mysql:host=' . $PARAM_hote . ';dbname=' . $PARAM_nom_bdd, $PARAM_utilisateur, $PARAM_mot_passe);
Je voudrais utiliser la methode "binParam()" avec les fameuses requètes préparées.
Par contre ma connexion à ma BDD est dans un fichier externe.
Peux tu me donner quelques infos pratique sur le net c'est quelque peu flou les explications, enfin pour moi puisque je commence avec PDO.
je te remercie.
hervé56
Messages postés
268
Date d'inscription
lundi 15 novembre 2010
Statut
Membre
Dernière intervention
25 mars 2017
10
18 juil. 2011 à 16:00
18 juil. 2011 à 16:00
déja essaie de faire une requete toute conne pour voir si ca marche
$sql = "SELECT * FROM ta_table"; $resultat = $pdo->query($sql)->fetchAll(PDO::FETCH_ASSOC); print_r($resultat);
troubadour2
Messages postés
277
Date d'inscription
vendredi 11 juin 2010
Statut
Membre
Dernière intervention
19 juin 2016
1
18 juil. 2011 à 17:14
18 juil. 2011 à 17:14
ça c'est ok ça me retourne bien toutes les valeurs.
hervé56
Messages postés
268
Date d'inscription
lundi 15 novembre 2010
Statut
Membre
Dernière intervention
25 mars 2017
10
18 juil. 2011 à 17:22
18 juil. 2011 à 17:22
je peut pas te faire un cour coomme ca sans rien, essaie de toi meme et revien avec le probleme que tu rencontre plutot :)
troubadour2
Messages postés
277
Date d'inscription
vendredi 11 juin 2010
Statut
Membre
Dernière intervention
19 juin 2016
1
18 juil. 2011 à 17:43
18 juil. 2011 à 17:43
pourquoi si je rajoute un WHERE ça me génére une erreur?
$sql = "SELECT * FROM menu WHERE Id_page = :id_page";
$resultat = $bdd->query($sql)->fetchAll(PDO::FETCH_ASSOC);
Fatal error: Call to a member function fetchAll() on a non-object in
$sql = "SELECT * FROM menu WHERE Id_page = :id_page";
$resultat = $bdd->query($sql)->fetchAll(PDO::FETCH_ASSOC);
Fatal error: Call to a member function fetchAll() on a non-object in
hervé56
Messages postés
268
Date d'inscription
lundi 15 novembre 2010
Statut
Membre
Dernière intervention
25 mars 2017
10
18 juil. 2011 à 18:09
18 juil. 2011 à 18:09
pask tu n'a aucun retour vu que tu n'as probablement aucunes Id_page qui s'appellent :id_page
on utilise :var et ? pour des requetes preparée (execute) pas des simples query
on utilise :var et ? pour des requetes preparée (execute) pas des simples query
vincebzh
Messages postés
137
Date d'inscription
lundi 22 mars 2010
Statut
Contributeur
Dernière intervention
7 mai 2013
29
18 juil. 2011 à 19:45
18 juil. 2011 à 19:45
Salut.
Ta requête est écrite comme si c'était une requête préparée.
Il faut que tu utilises la méthode prepare() de PDO. Ou alors que tu remplace :id_page par l'identifiant.
Ou alors :
Pour éviter les erreurs "Fatal error: Call to a member function fetchAll() on a non-object", utilises rowCount() pour vérifier que la requête retourne bien quelque chose.
Ta requête est écrite comme si c'était une requête préparée.
Il faut que tu utilises la méthode prepare() de PDO. Ou alors que tu remplace :id_page par l'identifiant.
$sql = "SELECT * FROM menu WHERE id_page = :id_page"; $resultat = $bdd->prepare($sql); $resultat->execute(array(':id_page' => 2)); if($resultat->rowCount()) { var_dump( $resultat->fetchAll(PDO::FETCH_ASSOC) ); }
Ou alors :
$sql = "SELECT * FROM menu WHERE id_page = 2"; $resultat = $bdd->query($sql); if($resultat->rowCount()) { var_dump( $resultat->fetchAll(PDO::FETCH_ASSOC) ); }
Pour éviter les erreurs "Fatal error: Call to a member function fetchAll() on a non-object", utilises rowCount() pour vérifier que la requête retourne bien quelque chose.
troubadour2
Messages postés
277
Date d'inscription
vendredi 11 juin 2010
Statut
Membre
Dernière intervention
19 juin 2016
1
19 juil. 2011 à 00:22
19 juil. 2011 à 00:22
Bonjour
Merci pour vos explications je vais regarder tout ça.
Merci encore et je vous tiens au courant.
Merci pour vos explications je vais regarder tout ça.
Merci encore et je vous tiens au courant.
troubadour2
Messages postés
277
Date d'inscription
vendredi 11 juin 2010
Statut
Membre
Dernière intervention
19 juin 2016
1
22 juil. 2011 à 00:34
22 juil. 2011 à 00:34
Merci pour tout rien ne va ça m'ennuie de rester comme ça.
Pouvez-vous encore me donner quelques explications.
Je vous remercie.
avec ce code ça me retourne rien
par contre si j'execute comme ça ça me retourne bien mes valeurs
Pouvez-vous encore me donner quelques explications.
Je vous remercie.
avec ce code ça me retourne rien
$sql = "SELECT * FROM menu WHERE id_page = :id_page"; $resultat = $bdd->prepare($sql); $resultat->execute(array(':id_page' => $_ENV['id_page'])); if($resultat->rowCount()) { var_dump( $resultat->fetchAll(PDO::FETCH_ASSOC) ); }
par contre si j'execute comme ça ça me retourne bien mes valeurs
$resultat->execute(array(':id_page' => 3));
hervé56
Messages postés
268
Date d'inscription
lundi 15 novembre 2010
Statut
Membre
Dernière intervention
25 mars 2017
10
22 juil. 2011 à 06:49
22 juil. 2011 à 06:49
et ca c'est quoi ? $_ENV['id_page']
troubadour2
Messages postés
277
Date d'inscription
vendredi 11 juin 2010
Statut
Membre
Dernière intervention
19 juin 2016
1
22 juil. 2011 à 08:38
22 juil. 2011 à 08:38
Bonjour
Mon tableau associatif de variable que j'ai passé avec la méthode d'environnement $_ENV
En fait j'ai passé mes variables dans une fonction avec une variable superglobale
au début de mon script.
j'ai une erreur sur cette fonction qui me dit que $bdd n'est pas initialisée
voici l'erreur
pourtant j'ai fait
Merci
Mon tableau associatif de variable que j'ai passé avec la méthode d'environnement $_ENV
En fait j'ai passé mes variables dans une fonction avec une variable superglobale
au début de mon script.
j'ai une erreur sur cette fonction qui me dit que $bdd n'est pas initialisée
voici l'erreur
Notice: Undefined variable: bdd in D:\EasyPHP-5.3.3.1\www\mon_site\fonction\fonction.php on line 92
function affiche_menu($idpage) { $sql = 'SELECT * FROM menu WHERE Id_parent = :id_page'; $resultat = $bdd->prepare($sql); $resultat->execute(array(':id_page' => $idpage)); $donnees = $resultat->fetchAll(); if (mysql_num_rows($resultat) == 0) { $sql = 'SELECT 'Id_page', 'Titre' FROM 'menu' WHERE 'Id_parent' = '.$_ENV['id_parent']; $resultat = $bdd->prepare($sql); $resultat->execute(array(':id_page' => $_ENV['id_parent'])); $donnees = $resultat->fetchAll(); } $menu_retour = '<ul>'; while ($resultat = mysql_fetch_array($donnees)) { $menu_retour .= '<li>'; $menu_retour .= '<a href="index.php?id_page='.$donnees['Id_page'].'">'; $menu_retour .= $donnees['Titre']; $menu_retour .= '</a>'; $menu_retour .= '</li>'; } $menu_retour .= '</ul>'; return $menu_retour; } ?>
pourtant j'ai fait
$bdd = new PDO('mysql:host=' . $PARAM_hote . ';dbname=' . $PARAM_nom_bdd, $PARAM_utilisateur, $PARAM_mot_passe);
Merci
hervé56
Messages postés
268
Date d'inscription
lundi 15 novembre 2010
Statut
Membre
Dernière intervention
25 mars 2017
10
22 juil. 2011 à 12:44
22 juil. 2011 à 12:44
ca sert a rien de faire tout ca, essaie déja de faire un truc simple, la c'est tout mélangé (PDO , mysql_fetch_array ...)
et on ne place pas des variables d'environement pour ca mais ca c une autre histoire...
et on ne place pas des variables d'environement pour ca mais ca c une autre histoire...
troubadour2
Messages postés
277
Date d'inscription
vendredi 11 juin 2010
Statut
Membre
Dernière intervention
19 juin 2016
1
1 août 2011 à 14:18
1 août 2011 à 14:18
Tout fonctionner à merveille comme je veux merci