Votre question

[PHP] [ PDO] Champ requete SQL qui n'apparaissent plus

Tags :
  • Sql
  • Programmation
Dernière réponse : dans Programmation
17 Mai 2010 11:50:03

Bonjour,

j'ai une requête SQL :
  1. SELECT realization_address, realization_zip_code, realization_city FROM form WHERE idform= UN_ID_ICI


Cette requete me remonte bien tout les champs quand je la saisie dans PHPMy Admin.
Cependant, quand je l'utilise en PHP à travers PDO, certains champs n'apparaissent plus (ici le champ "realization_city").
Voici le code :
  1. $connexion=$this->connect();
  2. $requete="SELECT realization_address, realization_zip_code, realization_city FROM form WHERE idform= ?";
  3. $requete_prepare=$connexion->prepare($requete);
  4. $requete_prepare->execute(array($id_proj));
  5. $lignes=$requete_prepare->fetch(PDO::FETCH_OBJ);
  6. $connexion=null;
  7. ...
  8. //Affichage des champs
  9. echo("Adresse : ".$lignes->realization_address."<br />");
  10. echo("CP :".$lignes->realization_zip_code."<br />");
  11. echo("Ville : ".$lignes->realization_city."<br />");


Ce problème est apparu depuis que j'ai changé de serveur.

Auriez vous une idée de la source du problème ?

Merci !

Autres pages sur : php pdo champ requete sql apparaissent

a c 232 L Programmation
17 Mai 2010 19:05:18

Salut,

Essaie de faire ceci juste avant l'affichage des champs:
  1. echo "<pre>";
  2. print_r($lignes);
  3. echo "</pre>";


Et donnes nous le résultat.

Et autre test, si tu fais un fetch(PDO::FETCH_NUM) et que tu regardes le contenu de $lignes[2] est-ce que tu as bien la ville ?
m
0
l
18 Mai 2010 11:51:18

Avec "Fetch_num", ça fonctionne jusqu'à 2 champs remontés, dès qu'il y en a un 3eme, ça pète les plombs.

Pour le print_r :

Citation :

stdClass Object
(
[realization_zip_code] => 69001
[realization_city] => Lyon
[form] => test2
)
m
0
l
Contenus similaires
a c 232 L Programmation
18 Mai 2010 12:48:07

Pas de raison que ça plante quand il y a 3 champs normalement...

Le print_r affiche bien le realization_city, pas de raison pour laquelle ça ne marcherait pas :/ 
Par contre, dans ton print_r, on a un champ form que l'on n'a pas dans la requête SQL, mais tu l'as peut être changée depuis...

Si tu sélectionnes seulement les champs realization_zip_code et realization_city, ça fonctionne ?
m
0
l
18 Mai 2010 13:24:20

Non, je n'ai pas changer la valeur des champs,
un autre exemple, pour la requête :
  1. SELECT project_owner_name, project_owner_address, project_owner_tel FROM form WHERE idform=XXX


j'ai le message :
Citation :
object(stdClass)#8 (5) { ["architect_agency_name"]=> string(9) "fergthtyh" ["architect_name"]=> string(4) "test" ["form"]=> string(5) "69000" ["concours"]=> string(4) "lyon" ["def"]=> string(6) "France" }


où "concours" est le nom de la BDD, "def", j'en ai aucune idée.

En utilisant mysql_ , ça fonctionne.

J'ai aussi tenté de mettre des quottes ou d'échanger l'ordre des champs mais le dernier s'appelle toujours d'un nom qui n'a rien à voir.
m
0
l
a c 232 L Programmation
18 Mai 2010 14:10:41

Il y a clairement un problème avec les retours de ta base de données...
Essaie ceci où tout le superflu est enlevé, afin que l'on ait directement le retour sans rien qui interfère au milieu (il y aura juste le $id_proj à définir) :

  1. $connexion=$this->connect();
  2. $requete="SELECT realization_address, realization_zip_code, realization_city FROM form WHERE idform= ?";
  3. $requete_prepare=$connexion->prepare($requete);
  4. $requete_prepare->execute(array($id_proj));
  5. $lignes=$requete_prepare->fetch(PDO::FETCH_OBJ);
  6. echo "<pre>";
  7. print_r($lignes);
  8. echo "</pre>";
m
0
l
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS