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 :

Analyse erreur fatale base Mysql [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Décembre 2014
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2014
    Messages : 28
    Points : 26
    Points
    26
    Par défaut Analyse erreur fatale base Mysql
    Bonjour,
    J'ai créé une fonction qui récupère des POST pour les intégrer dans une table, cette fonction marchait sur ma première table mais pas sur une nouvellement créée:
    Voici l'erreur générée:
    Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: parameter was not defined'

    Le problème vient-il de la construction de ma table ou d'une erreur dans mon code, le voici pour ceux que ça intéresse:

    le modèle des POST envoyés
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type="text" name="nom_de_la_table['.$id.'][11]" value="" />
    $id est soit l'index de la ligne à modifier ou vaut "plus" dans le cadre d'une création de ligne
    "11" est le nom du champ de ma table.

    La fonction qui permet théoriquement d'alimenter avec un formulaire plusieurs tables d'une base:

    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
     
    function ecriture_base($base,$post){
       // j'ouvre la connexion
       if($post!='' or $get_id>0){
         $bdd = new PDO ('mysql:host=localhost;dbname='.$base.';charset=utf8', 'util', 'pass');
         $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
       }
       if($post!=''){
         foreach($post as $table => $lgn){
           foreach($lgn as $key => $var){
             if($key=='plus' or $key==''){
               ksort($var);
               //creation d'une ligne
               $req = $bdd->prepare('INSERT INTO '.$table.' ( '.implode(',',array_keys($var)).') VALUES (:'.implode(',:',array_keys($var)).')');
               $req->execute($var);
             }
             if($key>0){
               //Modif = UPDATE   fichier SET champ à corriger = modifcation
               foreach($var as $id => $val){$valeur[]=' '.$id.' = "'.$val.'" ';}
               $req = $bdd->prepare('UPDATE '.$table.' SET '.implode(',',$valeur).'  where id = :search');
               $req->execute(array('search' => $key));
             }
           }
        }
      }
    }
    Merci de vos réponses.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Tu comprends le message d'erreur ou pas ?
    C'est quand même le minimum pour espérer le corriger.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Décembre 2014
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2014
    Messages : 28
    Points : 26
    Points
    26
    Par défaut
    Non c'est ma première prog sur MySQL.
    Je suis en train de chercher où trouver de la doc sur ces messages d'erreur.

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Décembre 2014
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2014
    Messages : 28
    Points : 26
    Points
    26
    Par défaut
    Bon j'ai compris, je n'ai pas le droit de nommer un champ dans la table par un nombre.
    Dans mon cas il s'appelait: 11.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Quelle drôle d'idée aussi d'appeler un champ/une colonne "11"...
    Dernière modification par Invité ; 08/09/2018 à 11h47.

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Décembre 2014
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2014
    Messages : 28
    Points : 26
    Points
    26
    Par défaut
    Merci a bientôt

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

Discussions similaires

  1. [MySQL] Erreur import base mysql quelle que soit la méthode
    Par pachakuti dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 25/07/2016, 17h39
  2. Erreur sur script en attaquant une base mysql
    Par bilou95 dans le forum SQL Procédural
    Réponses: 7
    Dernier message: 09/10/2006, 15h58
  3. Erreur connection à une base Mysql avec c#
    Par zidenne dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 24/04/2006, 14h58
  4. [BDD] Erreur dans la connexion à une base MySQL
    Par dodo10 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 24/01/2005, 19h52

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