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 :

Erreur sur requête INSERT [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre émérite Avatar de obito
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Par défaut Erreur sur requête INSERT
    Bonsoir! VOila quand j'execute cette requete:

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
     $req = "INSERT INTO images VALUES ('','".$img_nom."', '".$img_taille."', '".$img_type."','', '".addslashes ($img_blob)."') ";

    J'ai ce message:

    Column count doesn't match value count at row 1
    Voici la structure de ma table:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CREATE TABLE `images` (
         `img_id` INT NOT NULL AUTO_INCREMENT ,
         `img_nom` VARCHAR( 50 ) NOT NULL ,
         `img_taille` VARCHAR( 25 ) NOT NULL ,
         `img_type` VARCHAR( 25 ) NOT NULL ,
         `img_desc` VARCHAR( 100 ) NOT NULL ,
         `img_blob` BLOB NOT NULL ,
         PRIMARY KEY ( `img_id` )
    )
    Si quelqu'un voit où est le problème ça m'aiderait bien ><

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Par défaut
    Bonjour,

    Le message est quand même assez clair : le nombre de colonne ne correspond pas.
    6 colonnes dans la table, 5 dans l'insert.

  3. #3
    Membre chevronné Avatar de defcon_suny
    Homme Profil pro
    Non pas trop...
    Inscrit en
    Décembre 2006
    Messages
    441
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Non pas trop...
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 441
    Par défaut
    Désolé mais la requête que tu nous donnes est correct. As tu encore cette erreur?

  4. #4
    Membre émérite Avatar de obito
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Par défaut
    Oui oui justement! C'est ça qui me perturbe! Ma requête est bonne vu que je rempli bien les 6 champs! Et pourtant elle ne marche pas ><

    C'est la ou je comprends pas du tout d'où cela peut venir...

  5. #5
    Membre chevronné Avatar de defcon_suny
    Homme Profil pro
    Non pas trop...
    Inscrit en
    Décembre 2006
    Messages
    441
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Non pas trop...
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 441
    Par défaut
    avant d'envoyer ta requête vers le SGBD... fais
    echo $req;

    Qu'est ce que la donne?

  6. #6
    Membre émérite Avatar de obito
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Par défaut
    VOici déjà la fonction que j'utilise, je me suis servi d'un tutoriel pour uploader des images...

    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
    function transfert ()
    {
     
          $ret = false;
          $img_blob = '';
          $img_taille = 0;
          $img_type = '';
          $img_nom = '';
          $taille_max = 250000;
          $ret = is_uploaded_file ($_FILES['fic']['tmp_name']);
          if ( !$ret )
          {
                echo "Problème de transfert";
                return false;
          }
          else
          {
                // Le fichier a bien été reçu
                $img_taille = $_FILES['fic']['size'];
                if ( $img_taille > $taille_max )
                {
                      echo "Trop gros !";
                      return false;
                }
                $img_type = $_FILES['fic']['type'];
                $img_nom = $_FILES['fic']['name'];
               $img_blob = file_get_contents ($_FILES['fic']['tmp_name']);
    	   $req = "INSERT INTO images VALUES ('','".$img_nom."', '".$img_taille."', '".$img_type."','', '".addslashes($img_blob)."') ";
     
      $res = mysql_query ($req) or die (mysql_error ());
      return true;
    }
     
    }

    Pour le echo je vous tiens au courant^^

  7. #7
    Membre Expert

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Par défaut
    Au risque de me répèter :
    Citation Envoyé par jeca Voir le message
    Le message est quand même assez clair : le nombre de colonnes ne correspond pas.
    6 colonnes dans la table, 5 dans l'insert.
    La colonne 'img_desc' ne s'y trouve pas.

  8. #8
    Membre émérite Avatar de obito
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Par défaut
    si si elle y est c'est juste que j'ai mis '' à la place

    Voir entre image type et image blob

  9. #9
    Membre Expert

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Par défaut
    Exact, je n'avais pas vu.
    Cela étant, le message a toujours la même signification : tu essaies d'insérer un nombre de colonnes différent de celui qui se trouve dans la table.

  10. #10
    Membre émérite Avatar de obito
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Par défaut
    Oui ça je suis d'accord! Peut être alors que je récupère mal mes variables?... Bon je vais travailler ça, je vous tiens au courant^^

  11. #11
    Membre chevronné Avatar de defcon_suny
    Homme Profil pro
    Non pas trop...
    Inscrit en
    Décembre 2006
    Messages
    441
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Non pas trop...
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 441
    Par défaut
    Citation Envoyé par defcon_suny Voir le message
    avant d'envoyer ta requête vers le SGBD... fais
    echo $req;

    Qu'est ce que la donne?
    C'est ce que je crois... c'est pour ca le message en citation

  12. #12
    Membre émérite Avatar de obito
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Par défaut
    BOn ca doit être ça... Car maintenant au moins, il ne rentre plus dans la condition mais met directement un probleme de transfert

    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
    function transfert ()
    {
     
          $ret = false;
          $img_blob = '';
          $img_taille = 0;
          $img_type = '';
          $img_nom = '';
          $taille_max = 250000;
          $ret = is_uploaded_file ($_FILES['fic']['tmp_name']);
          if ( !$ret )
          {
                //C'est ça qui s'affiche maintenant ><
                echo "Problème de transfert";
                return false;
          }
          else
          {
                // Le fichier a bien été reçu
                $img_taille = $_FILES['fic']['size'];
                if ( $img_taille > $taille_max )
                {
                      echo "Trop gros !";
                      return false;
                }
                $img_type = $_FILES['fic']['type'];
                $img_nom = $_FILES['fic']['name'];
               $img_blob = file_get_contents ($_FILES['fic']['tmp_name']);
    	   $req = "INSERT INTO images VALUES ('','".$img_nom."', '".$img_taille."', '".$img_type."','', '".addslashes($img_blob)."') ";
     
      $res = mysql_query ($req) or die (mysql_error ());
      return true;
    }
     
    }

    VOila mon formulaire

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <form enctype="multipart/form-data" method="POST" action="AjoutLivre.php" name="frmAjout">
    <input type="hidden" name="MAX_FILE_SIZE" value="250000" />
    <label for"fic">Couverture: </label><input type="file" name="fic" size=50 /><br/>
    <input type="submit" name="btOK" value="uploader!" />
    </form>
    <?php
    if ( isset($_FILES['fic']) )
    {
          transfert();
    }

  13. #13
    Membre chevronné Avatar de defcon_suny
    Homme Profil pro
    Non pas trop...
    Inscrit en
    Décembre 2006
    Messages
    441
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Non pas trop...
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 441
    Par défaut
    Le code que tu envoies fonctionne bien!!!

    teste ceci en changeant les paramètres de connexion à la DB:
    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
    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
     
    <?php
    function transfert ()
    {
     
          $ret = false;
          $img_blob = '';
          $img_taille = 0;
          $img_type = '';
          $img_nom = '';
          $taille_max = 250000;
          $ret = is_uploaded_file ($_FILES['fic']['tmp_name']);
          if ( !$ret )
          {
                //C'est ça qui s'affiche maintenant ><
                echo "Problème de transfert";
                return false;
          }
          else
          {
                // Le fichier a bien été reçu
                $img_taille = $_FILES['fic']['size'];
                if ( $img_taille > $taille_max )
                {
                      echo "Trop gros !";
                      return false;
                }
                $img_type = $_FILES['fic']['type'];
                $img_nom = $_FILES['fic']['name'];
               $img_blob = file_get_contents ($_FILES['fic']['tmp_name']);
    	    	/* Connecting, selecting database */
    			$db_link = mysql_connect("localhost", "root", "");
    			if (!$db_link) {
    			   die("Could not connect: " . mysql_error());
    			}
    			mysql_select_db("test") or die("Could not select database");
     
    			/* Performing SQL query */
     
    			$req = "INSERT INTO images VALUES ('','".$img_nom."', '".$img_taille."', '".$img_type."','', '".addslashes($img_blob)."') ";
     			$res = mysql_query ($req) or die (mysql_error ());
    			/* Closing connection */
    			mysql_close($db_link);
     
      return true;
    }
     
    }
    ?>
     
    <html>
    <head>
    </head>
    <body>
    <form enctype="multipart/form-data" method="POST" action="index.php" name="frmAjout">
    <input type="hidden" name="MAX_FILE_SIZE" value="250000" />
    <label for="fic">Couverture: </label><input type="file" name="fic" size="50" /><br/>
    <input type="submit" name="btOK" value="uploader!" />
    </form>
    <?php
    if ( isset($_FILES['fic']) )
    {
          transfert();
    }
    ?>
    </body>
    </html>

  14. #14
    Membre émérite Avatar de obito
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Par défaut
    Selon moi le problème vient plutôt de là:

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $ret = is_uploaded_file ($_FILES['fic']['tmp_name']);

    Puisqu'il rentre dans le if et qu'il me met "probleme de transfert"... non?

    P.S: J'ai testé le code et toujours le même message : "probleme de transfert" ><

  15. #15
    Membre chevronné Avatar de defcon_suny
    Homme Profil pro
    Non pas trop...
    Inscrit en
    Décembre 2006
    Messages
    441
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Non pas trop...
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 441
    Par défaut
    essaie d'uploader un autre fichier...

  16. #16
    Membre émérite Avatar de obito
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Par défaut
    J'ai déjà essayer sur pleins différents en me demandant justement si ça ne venait pas de la >< Mais non toujours le problème...

    Si je fait un print_r de $8FILES voilà ce que j'ai:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Array ( [name] => Chap402_p03_GFC.jpg [type] => [tmp_name] => [error] => 2 [size] => 0 )
    Je ne devrais pas récupérer le type la? d'ailleurs j'ai la size à 0 ... Ca doit venir de php.ini alors? Va falloir que je regarde ça... même si je sais pas comment le modifier vu que je suis sur un hebergeur, je ne sais pas si je peux modifier ce fichier...

  17. #17
    Membre chevronné Avatar de defcon_suny
    Homme Profil pro
    Non pas trop...
    Inscrit en
    Décembre 2006
    Messages
    441
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Non pas trop...
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 441
    Par défaut
    Dans ce cas ci, php te retourne le code d'erreur 2 -> Ton fichier est trop lourd!!!

    La doc

  18. #18
    Membre émérite Avatar de obito
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Par défaut
    Ok donc déjà j'ai modifié la taille max...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Array ( [name] => Chap402_p02_GFC.jpg [type] => image/jpeg [tmp_name] => /tmp/php8Pl2jq [error] => 0 [size] => 614994 )
    J'adore ta signature elle montre exactement mon probleme... Oui ça à l'air bon je n'ai plus aucun message, je vais le modifier pour faire un echo si ca marche mais ça m'a l'air bon...

    Encore merci de ta patience, le problème était tout bête bien sur...

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

Discussions similaires

  1. erreur sur requête insert
    Par monpseudonom dans le forum Langage SQL
    Réponses: 5
    Dernier message: 17/11/2008, 20h09
  2. [SQL] erreur sur requête insert
    Par temperature dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 09/01/2008, 15h27
  3. Erreur sur Requête Mise à Jour
    Par guenfood dans le forum Access
    Réponses: 1
    Dernier message: 06/06/2006, 08h51
  4. Erreur sur requête
    Par zut94 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 26/04/2006, 10h23
  5. Problème sur requête insert mysql
    Par kcizth dans le forum Requêtes
    Réponses: 5
    Dernier message: 04/02/2006, 18h37

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