Se connecter avec
S'enregistrer | Connectez-vous

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

Dernière réponse : dans Programmation

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 !
Lassé par la pub ? Créez un compte
Expert Programmation

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 ?

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
)
Expert Programmation

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 ?

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.
Expert Programmation

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>";
Lassé par la pub ? Créez un compte
Tom's guide dans le monde