IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

[PHP objet & PDO] Requête UPDATE ne passe pas [PostgreSQL]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 16
    Points : 12
    Points
    12
    Par défaut [PHP objet & PDO] Requête UPDATE ne passe pas
    Bonjour à tous, alors voici mon problème:
    j'ai un héritage support (mère) et jeux (fille) en objet et dans ma base de données.

    Table:
    support(ref,date_sortie,prix,duree,url,nb_dl)
    jeux(#ref,nom,syn,editeur,config)

    Classe:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    class Jeux extends Support
    {
    	private $nom;
    	private $editeur;
    	private $syn;
    	private $config;
     
    	public function __construct ($ref,$sortie,$prix,$duree,$url,$dl,$nom,$editeur,$syn,$config)
    	{
    		parent::__construct($ref,$sortie,$prix,$duree,$url,$dl);
    		$this -> nom = $nom;
    		$this -> editeur = $editeur;
    		$this -> syn = $syn;
    		$this -> config = $config;
    	}
    ...
    Ma fonction qui met à jour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    //connexion BDD
    $con=connectBdd();//appel de la fonction de connexion
    $id=$obj->ref;
     
    //requete
    $req= $con->prepare("UPDATE support SET date_sortie=:date_sortie, prix=:prix, duree=:duree, url=:url WHERE ref=".$id." ;");
    $req->execute(array(
    	'date_sortie'=>$obj->sortie,
    	'prix'=>$obj->prix,
    	'duree'=>$obj->duree,
    	'url'=>$obj->url
    ));
    $req= $con->prepare("UPDATE jeux SET nom=:nom, syn=:syn, editeur=:editeur, config=:config WHERE ref=".$id." ;");
    $req->execute(array(
    	'nom'=>$obj->nom,
    	'editeur'=>$obj->editeur,
    	'syn'=>$obj->syn,
    	'config'=>$obj->config
    ));
     
    //close
    unset($req);
    unset($con);
    Le constructeur de mon objet "Jeux"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $obj=new Jeux(53,'2012-07-17',1000.01,'19:09:09','jeux/hellll.rar',0,'Hellll','BioWare','...Synopsis...','Configuration à la noix');
    Dans ma base de données, la table support est mise à jour correctement. Mais la table jeux ne change pas.
    J'ai d'autres entités fille, et cela marche très bien pour les autres, alors que c'est le même code.

    J'ai essayé de rentrer ma requête en dur dans PgAdmin, et cela marche parfaitement.
    Et avec un var_dump($req), j'obtiens:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    object(PDOStatement)[4]
    public 'queryString' => string 'UPDATE jeux SET nom=:nom, syn=:syn, editeur=:editeur, config=:config WHERE ref=53 ;' (length=83)
    J'ai bien ma clause ref de rempli avec le bon numéro.

    Je ne vois pas du tout d'où peut venir mon problème.

  2. #2
    Membre éprouvé
    Avatar de amoiraud
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2006
    Messages : 606
    Points : 1 057
    Points
    1 057
    Par défaut
    Salut,

    Je sait pas si ca vient de la mais :

    Note:

    Quelques drivers nécessitent de fermer le curseur avant d'exécuter la requête suivante.
    Essaye comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    //requete
    $req= $con->prepare("UPDATE support SET date_sortie=:date_sortie, prix=:prix, duree=:duree, url=:url WHERE ref=".$id." ;");
    $req->execute(array(
    	'date_sortie'=>$obj->sortie,
    	'prix'=>$obj->prix,
    	'duree'=>$obj->duree,
    	'url'=>$obj->url
    ));
    $req->closeCursor();
    $req= $con->prepare("UPDATE jeux SET nom=:nom, syn=:syn, editeur=:editeur, config=:config WHERE ref=".$id." ;");
    $req->execute(array(
    	'nom'=>$obj->nom,
    	'editeur'=>$obj->editeur,
    	'syn'=>$obj->syn,
    	'config'=>$obj->config
    ));


    Les boutons et existent, servez-vous en

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    Merci pour ton aide et ta réponse rapide.
    C'est vrai que c'est plus propre, mais malheureusement cela ne change pas mon problème.
    La requête ne semble pas s’exécuter, et j'ignore pourquoi.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SQL] requête sql ne passe pas
    Par CROSS dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 29/06/2007, 10h28
  2. [MySQL] Requête qui ne passe pas
    Par kirian dans le forum Bases de données
    Réponses: 3
    Dernier message: 26/02/2007, 11h47
  3. [MySQL] Requête UPDATE ne fonctionne pas
    Par JackBeauregard dans le forum PHP & Base de données
    Réponses: 25
    Dernier message: 29/01/2007, 23h32
  4. Requête qui ne passe pas
    Par TheBart dans le forum Langage SQL
    Réponses: 2
    Dernier message: 10/08/2005, 10h12
  5. requête update qui marche pas
    Par MrsFrizz dans le forum Langage SQL
    Réponses: 4
    Dernier message: 01/12/2004, 08h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo