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

Requêtes MySQL Discussion :

Erreur => SQLSTATE[21S01]


Sujet :

Requêtes MySQL

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    novembre 2019
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : novembre 2019
    Messages : 22
    Points : 26
    Points
    26
    Par défaut Erreur => SQLSTATE[21S01]
    Bonjour à tous,

    Je comprends l'erreur mais ne la trouve pas

    Pouvez vous regarder ?

    Le formulaire fonctionnait avant que je rajoute les colonnes "...conjoint_divers", "...pere_divers", "...mere_divers"
    J'ai vérifié la syntaxe et n'ai pas vu d'erreurs.

    Code php : 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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
    public function setNewActes($Datas, $beginPage, $endPage, $user) {
     
        $req = $this->getPDO($this->_dbDATA)->prepare(
          "INSERT INTO notaires_actes (notaire, id_relation, registre, type, objet, passage, date_enr, page_debut, page_fin,
                                        partie1_nom, partie1_prenom, partie1_qualite, partie1_profession, partie1_commune, partie1_lieudit, partie1_conjoint, partie1_conjoint_divers, partie1_cm_date, partie1_cm_lieu, partie1_cm_notaire, partie1_pere, partie1_pere_divers, partie1_mere, partie1_mere_divers,
                                        partie2_nom, partie2_prenom, partie2_qualite, partie2_profession, partie2_commune, partie2_lieudit, partie2_conjoint, partie2_conjoint_divers, partie2_cm_date, partie2_cm_lieu, partie2_cm_notaire, partie2_pere, partie2_pere_divers, partie2_mere, partie2_mere_divers,
                                        partie3_nom, partie3_prenom, partie3_qualite, partie3_profession, partie3_commune, partie3_lieudit, partie3_conjoint, partie3_conjoint_divers, partie3_cm_date, partie3_cm_lieu, partie3_cm_notaire, partie3_pere, partie3_pere_divers, partie3_mere, partie3_mere_divers,
                                        temoins, autres_parties, communes, lieuxdits, actes_cites, observations, version, id_acte_ref, w_user, indexed_by)
                                VALUES( ?,?,?,?,?,?,?,?,?,
                                        ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?
                                        ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?
                                        ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?
                                        ?,?,?,?,?,?,?,?,?,?
                                      )"
          );
        $DatasList = array();
        $x = 0;
        foreach($Datas as $object) {
          foreach($object as $key => $value) {
            array_push($DatasList, $value);
            $x++;
          }
        }
        $reqC = $this->getPDO($this->_dbCRGPG)->query(
        	"SELECT statut_confiance FROM Adherents WHERE W_username='{$user}'"
        );
        $userState = $reqC->fetch();
        if($userState['statut_confiance'] == true) {
        	$state = 'C';
        }
        else if($userState['statut_confiance'] == false) {
        	$state = 'U';
        }
        array_push($DatasList, $user);
        array_push($DatasList, $state);
        echo $x+2;
        print_r($DatasList);
     
        $req->execute($DatasList);
        $this->setIndexationPhoto($beginPage, $endPage);
      }
    Code php : 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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
     
    if(isset($_POST['save'])) {
      foreach(range(1,3) as $i) {
        $party = array(
          'lastname'   => htmlspecialchars($_POST["lastname$i"]),
          'firstname'  => htmlspecialchars($_POST["firstname$i"]),
          'quality'    => htmlspecialchars($_POST["quality$i"]),
          'job'        => htmlspecialchars($_POST["job$i"]),
          'town'       => htmlspecialchars($_POST["town$i"]),
          'locality'   => htmlspecialchars($_POST["locality$i"]),
          's-name'     => htmlspecialchars($_POST["s-name$i"]),
          's-various'  => htmlspecialchars($_POST["s-various$i"]),
          // 's-location' => htmlspecialchars($_POST["s-location$i"]),
          'date-cm'    => htmlspecialchars($_POST["date-cm$i"]),
          'location-cm'=> htmlspecialchars($_POST["location-cm$i"]),
          'notary'     => htmlspecialchars($_POST["notary$i"]),
          'f-name'     => htmlspecialchars($_POST["f-name$i"]),
          'f-various'  => htmlspecialchars($_POST["f-various$i"]),
          // 'f-location' => htmlspecialchars($_POST["f-location$i"]),
          'm-name'     => htmlspecialchars($_POST["m-name$i"]),
          'm-various'  => htmlspecialchars($_POST["m-various$i"]),
          // 'm-location' => htmlspecialchars($_POST["m-location$i"]),
        );
     
        if($i == 1) { $party1 = $party; }
        else if($i == 2) { $party2 = $party; }
        else if($i == 3) { $party3 = $party; }
      }
     
      // if(empty($_POST['end-page'])) {
      //   $_POST['end-page'] = $_POST['begin-page'];
      // }
      $general = array(
        'id-notary'   => htmlspecialchars($_POST['id-notary']),
        'id-relation' => htmlspecialchars($_POST['id-relation']),
        'register'    => htmlspecialchars($_POST['register']),
        'type'        => htmlspecialchars($_POST['type']),
        'object'      => htmlspecialchars($_POST['object']),
        'deed-date'   => htmlspecialchars($_POST['deed-date']),
        'rec-date'    => htmlspecialchars($_POST['record-date']),
        'begin-page'  => htmlspecialchars($_POST['begin-page']),
        'end-page'    => htmlspecialchars($_POST['end-page'])
      );
      if(empty($general['deed-date'])) {
        $general['deed-date'] = '0000-00-00';
      }
      if(empty($general['rec-date'])) {
        $general['rec-date'] = '0000-00-00';
      }
      $other = array(
        'witnesses'     => htmlspecialchars($_POST['witnesses']),
        'other-parties' => htmlspecialchars($_POST['other-parties']),
        'towns'         => htmlspecialchars($_POST['towns']),
        'localities'    => htmlspecialchars($_POST['localities']),
        'other-deeds'   => htmlspecialchars($_POST['other-deeds']),
        'observations'  => htmlspecialchars($_POST['observations']),
        'version'		=> htmlspecialchars($_POST['version']),
        'id_acte_ref'	=> htmlspecialchars($_POST['id_acte_ref']),
      );
      if(empty($other['id_acte_ref'])) {
      	$other['id_acte_ref'] = null;
      }
      $Datas = array($general, $party1, $party2, $party3, $other);
      print_r($general);
      echo'<br>';
      print_r($party1);
      echo'<br>';
      print_r($other);
      echo'<br>';
      $db->setNewActes($Datas, htmlspecialchars($_POST['begin-page']), htmlspecialchars($_POST['end-page']), htmlspecialchars($_POST['user']));
    }

    Je ne met pas le formulaire en entier car vous imaginé bien qu'il est balaise.
    Code html : 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
    29
    30
    31
     
    <div id="form1<?php echo($x) ?>" class="content-form">
      <div class="annex-form">
        <input type="text" class="margin5" name="s-name<?php echo($x) ?>" value="<?php echo $acte?$acte[0]['partie'.$x.'_conjoint']:''; ?>" placeholder="Nom" title="Nom">
        <textarea class="textarea margin5" name="s-various<?php echo($x) ?>" rows="2" cols="" style="width:80%" placeholder="Autres informations" title="Autres informations"><?php echo $acte?$acte[0]['partie'.$x.'_conjoint_divers']:''; ?></textarea>
        <!-- <input class="annex2" type="text" name="s-job<?php echo($x) ?>" placeholder="Profession">
        <input class="annex3" type="text" name="s-location<?php echo($x) ?>" placeholder="Lieu"> -->
      </div>
      <label for="">Infos mariage :</label>
      <div class="annex-form-grid">
        <input class="annex1" size="20" type="date" name="date-cm<?php echo($x) ?>" value="<?php echo $acte?$acte[0]['partie'.$x.'_cm_date']:''; ?>">
        <input class="annex2" type="text" name="location-cm<?php echo($x) ?>" value="<?php echo $acte?$acte[0]['partie'.$x.'_cm_lieu']:''; ?>" placeholder="Lieu CM" title="Lieu CM">
        <input class="annex3" type="text" name="notary<?php echo($x) ?>" value="<?php echo $acte?$acte[0]['partie'.$x.'_cm_notaire']:''; ?>" placeholder="Notaire" title="Notaire">
      </div>
    </div>
    <div id="form2<?php echo($x) ?>" class="content-form">
      <div class="annex-form">
        <input type="text" class="margin5" name="f-name<?php echo($x) ?>" value="<?php echo $acte?$acte[0]['partie'.$x.'_pere']:''; ?>" placeholder="Nom" title="Nom">
        <textarea class="textarea margin5" name="f-various<?php echo($x) ?>" rows="3" cols="" style="width:80%" placeholder="Autres informations" title="Autres informations"><?php echo $acte?$acte[0]['partie'.$x.'_pere_divers']:''; ?></textarea>
        <!-- <input class="annex2" type="text" name="f-job<?php echo($x) ?>" placeholder="Profession">
        <input class="annex3" type="text" name="f-location<?php echo($x) ?>" placeholder="Lieu"> -->
      </div>
    </div>
    <div  id="form3<?php echo($x) ?>" class="content-form">
      <div class="annex-form">
        <input type="text" class="margin5" name="m-name<?php echo($x) ?>" value="<?php echo $acte?$acte[0]['partie'.$x.'_mere']:''; ?>" placeholder="Nom" title="Nom">
        <textarea class="textarea margin5" name="m-various<?php echo($x) ?>" rows="3" cols="" style="width:80%" placeholder="Autres informations" title="Autres informations"><?php echo $acte?$acte[0]['partie'.$x.'_mere_divers']:''; ?></textarea>
        <!-- <input class="annex2" type="text" name="m-job<?php echo($x) ?>" placeholder="Profession">
        <input class="annex3" type="text" name="m-location<?php echo($x) ?>" placeholder="Lieu"> -->
      </div>
    </div>


    RETOUR:

    Array ( [id-notary] => 17181 [id-relation] => 22869 [register] => 28_2_E_50_453 [type] => 2 [object] => [deed-date] => 1906-01-01 [rec-date] => 0000-00-00 [begin-page] => 6 [end-page] => 6 )
    Array ( [lastname] => PARTIE1 [firstname] => [quality] => [job] => [town] => [locality] => [s-name] => [s-various] => [date-cm] => [location-cm] => [notary] => [f-name] => [f-various] => [m-name] => [m-various] => )
    Array ( [witnesses] => [other-parties] => [towns] => [localities] => [other-deeds] => [observations] => [version] => 1 [id_acte_ref] => 22350 )
    64Array ( [0] => 17181 [1] => 22869 [2] => 28_2_E_50_453 [3] => 2 [4] => [5] => 1906-01-01 [6] => 0000-00-00 [7] => 6 [8] => 6 [9] => PARTIE1 [10] => [11] => [12] => [13] => [14] => [15] => [16] => [17] => [18] => [19] => [20] => [21] => [22] => [23] => [24] => PARTIE2 [25] => [26] => [27] => [28] => [29] => [30] => [31] => [32] => [33] => [34] => [35] => [36] => [37] => [38] => [39] => PARTIE3 [40] => [41] => [42] => [43] => [44] => [45] => [46] => [47] => [48] => [49] => [50] => [51] => [52] => [53] => [54] => [55] => [56] => [57] => [58] => [59] => [60] => 1 [61] => 22350 [62] => user [63] => U )
    Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[21S01]: Insert value list does not match column list: 1136 Column count doesn't match value count at row 1' in /home/perche14/public_html/adherents/visionneuse-liasse/modals-dependencies/inc/ModalsQueryDB.php:100 Stack trace: #0 /home/perche14/public_html/adherents/visionneuse-liasse/modals-dependencies/inc/ModalsQueryDB.php(100): PDOStatement->execute(Array) #1 /home/perche14/public_html/adherents/visionneuse-liasse/modals-dependencies/inc/get-form-values.php(71): ModalsQueryDB->setNewActes(Array, '6', '6', 'bidault') #2 /home/perche14/public_html/adherents/visionneuse-liasse/index.php(14): include('/home/perche14/...') #3 {main} thrown in /home/perche14/public_html/adherents/visionneuse-liasse/modals-dependencies/inc/ModalsQueryDB.php on line 100

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    janvier 2009
    Messages
    4 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : janvier 2009
    Messages : 4 496
    Points : 10 661
    Points
    10 661
    Par défaut
    Bonjour,
    D'après le message d'erreur, le nombre de colonnes à mettre à jour ne correspond pas au nombre valeurs passées.
    Je vois dans la requête, dans la liste des points d'interrogation, qu'il n'y a pas de virgule à la fin de chaque ligne, donc pour moi la liste des paramètres devient:
    ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,??,?,?,?,?,?,?,?,?,?,?,?,?,?,??,?,?,?,?,?,?,?,?,?,?,?,?,?,??,?,?,?,?,?,?,?,?,?
    Ce qui fait qu'il manque 3 paramètres.

    Tatayo.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    novembre 2019
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : novembre 2019
    Messages : 22
    Points : 26
    Points
    26
    Par défaut
    Erreur de syntaxe évidement..

    J'aurais pu bloquer encore longtemps.

    Merci à toi

  4. #4
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    mars 2010
    Messages
    7 256
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : mars 2010
    Messages : 7 256
    Points : 23 071
    Points
    23 071
    Billets dans le blog
    2
    Par défaut
    bonjour,

    il manque des virgules après certains "?"

    Par ailleurs 64 colonnes dans une même table c'est symptomatique d'une modélisation à revoir... dans la mesure du possible bien sûr

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    novembre 2019
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : novembre 2019
    Messages : 22
    Points : 26
    Points
    26
    Par défaut
    Citation Envoyé par escartefigue Voir le message
    Par ailleurs 64 colonnes dans une même table c'est symptomatique d'une modélisation à revoir... dans la mesure du possible bien sûr
    Oui effectivement. Tout les champs partie...(45 champs) mériteraient une table dédié.

    Mais le site à plus de 15 ans et c'est pas le seul problème. (un vrai plat de spaghetti )

    Une refonte du site sera peut être ma prochaine mission mais j'aime autant ne pas y toucher , trop le bordel.

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

Discussions similaires

  1. Erreur SQL=> SQLSTATE[21S01]:
    Par phil33470 dans le forum Requêtes
    Réponses: 9
    Dernier message: 04/08/2017, 10h56
  2. [PDO] Erreur execute(): SQLSTATE[HY093]: Invalid parameter number: number of bound variables
    Par Aaymeric91 dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 30/09/2013, 17h27
  3. [PDO] Erreur louche : 'SQLSTATE[42000]: Syntax error or access violation: 1064'
    Par oliopur dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 19/03/2012, 17h10
  4. [MySQL] Erreur SQL : SQLSTATE[42000]: Syntax error or access violation: 1064
    Par petit.quent dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 29/12/2011, 16h13
  5. [PDO] Erreur incompréhensible : 'SQLSTATE[42000]: Syntax error or access violation: 1064'
    Par cyril_k dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 13/12/2008, 12h12

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