8768 sujets

Développement web côté serveur, CMS

Bonjour à tous,
je n'arrive pas à trouver d'où peut venir mon erreur dans la mise à jour de champs d'une table...
Voici le message d'erreur :
number of bound variables does not match number of tokens in facture-creation.php:53

Et mon code :

// Connexion à la base de données :
require ("connexion.php");

// Recherche du dernier n° de facture dans la table "contrats" :
// (si aucune facture n'est en bdd, on créé la facture n° 500)
$requete1 = $bdd->query('SELECT IFNULL(MAX(contrats.facture),499) AS facture FROM contrats');
$data = $requete1->fetch();
$numero = $data['facture'] + 1;

// Récupération de la date du jour :
$date_facture = date('Y/m/d');

// Affectation contrat par contrat de l'état facture 3, du n° de facture ainsi que la date du jour :
foreach ($_POST['coche'] as $value):
    if (!empty($value)):        
        $requete2 = $bdd->prepare('
            UPDATE contrats
            SET etat = :nvetat, facture = nvfacture, date_facture = nvdate_facture
            WHERE id_contrat = :contrat');
        $requete2->execute(array(
            'contrat'=>$value,
            'nvetat'=>3,
            'nvfacture'=>$numero,
            'nvdate_facture'=>$date_facture
        ));
    endif;
endforeach;

// Clôture des requètes : 
$requete1->closeCursor();
$requete2->closeCursor();



Merci d'avance pour votre aide !
J'ai trouvé mon erreur !!!
SET etat = :nvetat, facture = :nvfacture, date_facture = :nvdate_facture au lieu de
SET etat = :nvetat, facture = nvfacture, date_facture = nvdate_facture


Erreur d’inattention !
Modifié par etienne69 (09 Apr 2022 - 16:36)