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

Langage PHP Discussion :

Mise à jour d'une table dans MySQL - SQLSTATE[HY093]


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    228
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mai 2008
    Messages : 228
    Par défaut Mise à jour d'une table dans MySQL - SQLSTATE[HY093]
    Bonjour à toutes et à tous,

    Cela fait un loooonnng moment que je cherche sur quel paramètre je me suis trompé mais je ne trouve vraiment pas.

    J'ai réécrit le code plusieurs fois, vérifier les paramètres, usé de copier/coller... il doit y avoir quelque chose d'évident qui m'a échappé mais... pas moyen de trouver.

    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
     
    $_TEMP_client_email_id = $_SESSION['connexion_client_email'];
    $_TEMP_client_email_produit = "AF";
     
    if(isset($_page_avis_AF_client_avis_protect) AND isset($_page_avis_AF_client_aime_protect) AND isset($_page_avis_AF_client_deteste_protect))
    {
    	//le client est bien dans la table, on met à jour les données
    			$rep=$acces_bdd->prepare('UPDATE produit_achat_avis SET produit_achat_avis_avis_client:=produit_achat_avis_avis_client, produit_achat_avis_commentaire_aime:=produit_achat_avis_commentaire_aime, 
    			produit_achat_avis_commentaire_deteste:=produit_achat_avis_commentaire_deteste
    			WHERE produit_achat_avis_email_client:=produit_achat_avis_email_client AND produit_achat_avis_nom_produit:=produit_achat_avis_nom_produit');
     
    			// Je complète la table
    			$rep->execute(array(	
    			'produit_achat_avis_avis_client' => $_page_avis_AF_client_avis_protect,
    			'produit_achat_avis_commentaire_aime' => $_page_avis_AF_client_aime_protect,
    			'produit_achat_avis_commentaire_deteste' => $_page_avis_AF_client_deteste_protect,
    			'produit_achat_avis_email_client' => $_TEMP_client_email_id,
    			'produit_achat_avis_nom_produit' => $_TEMP_client_email_produit
    			));
    		}
    Merci d'avance pour votre aide

  2. #2
    Expert confirmé Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 976
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 976
    Par défaut
    Les deux points se placent avant le nom du placeholder dans la requête, pas avant le signe égal.

    Ce genre de bêtise tu l'aurais vu tout de suite en aérant un peu ton code:
    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
    24
    25
    26
    27
    28
    $_TEMP_client_email_id = $_SESSION['connexion_client_email'];
    $_TEMP_client_email_produit = 'AF';
     
    if (isset($_page_avis_AF_client_avis_protect) &&
        isset($_page_avis_AF_client_aime_protect) &&
        isset($_page_avis_AF_client_deteste_protect)) {
     
        // le client est bien dans la table, on met à jour les données
        $query = <<<'SQL'
        UPDATE produit_achat_avis
        SET produit_achat_avis_avis_client = :produit_achat_avis_avis_client,
            produit_achat_avis_commentaire_aime = :produit_achat_avis_commentaire_aime, 
            produit_achat_avis_commentaire_deteste = :produit_achat_avis_commentaire_deteste
        WHERE produit_achat_avis_email_client = :produit_achat_avis_email_client
          AND produit_achat_avis_nom_produit = :produit_achat_avis_nom_produit
        SQL;
     
        $rep = $acces_bdd->prepare($query);
     
        // Je complète la table
        $rep->execute(array(	
            'produit_achat_avis_avis_client' => $_page_avis_AF_client_avis_protect,
            'produit_achat_avis_commentaire_aime' => $_page_avis_AF_client_aime_protect,
            'produit_achat_avis_commentaire_deteste' => $_page_avis_AF_client_deteste_protect,
            'produit_achat_avis_email_client' => $_TEMP_client_email_id,
            'produit_achat_avis_nom_produit' => $_TEMP_client_email_produit
        ));
    }
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    228
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mai 2008
    Messages : 228
    Par défaut
    Bonjour CosmoKnacki,

    Un grand merci à toi !

    Le temps que j'ai passé la dessus et le pire... c'est que j'ai tout remis en cause SAUF...
    Merci également pour la présentation de code.

    Cela me permet de continuer à assimiler les bonnes pratiques

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

Discussions similaires

  1. [AC-2013] Duplication et mise à jour d'une table dans une base frontale
    Par debari dans le forum Access
    Réponses: 1
    Dernier message: 04/12/2015, 14h23
  2. Mise à jour d'une table dans access avec un dataset
    Par San Soussy dans le forum ADO.NET
    Réponses: 2
    Dernier message: 15/04/2014, 12h56
  3. Modifier le champ jour d'une date dans mysql
    Par sandddy dans le forum Requêtes
    Réponses: 6
    Dernier message: 12/03/2008, 10h09
  4. Mise à jour d'une date dans MySQL
    Par champijulie dans le forum JDBC
    Réponses: 6
    Dernier message: 07/02/2007, 18h02
  5. Mise à jour d'une table dans 2 BDD
    Par bozolozo dans le forum Access
    Réponses: 4
    Dernier message: 21/04/2006, 17h55

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