Probleme d insertion

Bonjour,

a chaque fois que je teste cette requette ( mysql_query ("INSERT INTO images (img_nom,img_taille,img_type,img_blob) VALUES ('$img_nom', '$img_taille', '$img_type', '$img_type', '$img_type', 'addslashes ($img_blob)') ") or die (mysql_error ()); )
cette erreur s affiche :
mysql_query ("INSERT INTO images (img_nom,img_taille,img_type,img_blob) VALUES ('$img_nom', '$img_taille', '$img_type', '$img_type', '$img_type', 'addslashes ($img_blob)') ") or die (mysql_error ());
s il vous plait aidez moi merci d avance

8 réponses

  1. Bonjour

    addslashes est une fonction PHP, elle ne donnera rien du tout si tu la mets à l'intérieur d'une chaîne
    mysql_query ("INSERT INTO images (img_nom,img_taille,img_type,img_blob) VALUES ('$img_nom', '$img_taille', '$img_type', '".mysql_real_escape_string($img_blob)."') ") or die (mysql_error ()); )

    Je me suis permis d'utiliser mysql_real_escape_string plutôt que addslashes qui n'est pas adapté à mysql.
    1
    1. j ai eu ca quand j ai utilser ta fonction :s
      Fatal error: Call to undefined function mysql_real_escape() in D:\wamp\www\ProjetDoc\chargement.php
      0
    2. tu as été trop rapide... j'ai pourtant vite corrigé mysql_real_escape_string
      0
    3. désolé ca fait 2 jours que je suis dessus :s j ai just envie de sortir de cet impasse ...j essaiye ca et jte tien au courant! merci
      0
    4. toujours ca mon ami :

      Warning: mysql_query() [function.mysql-query]: MySQL server has gone away in D:\wamp\www\ProjetDoc\chargement.php on line 38

      Warning: mysql_query() [function.mysql-query]: Error reading result set's header in D:\wamp\www\ProjetDoc\chargement.php on line 38
      MySQL server has gone away
      0
  2. Modérateur
    Salut,

    Dans INTO tu as 4 champs et dans VALUES 6 champs, ça ne colle pas ($img_type est présent 3 fois)

    cdlt
    0
    1. dans ton code tu insére plusieurs fois img type normalement tu ne peus insérer les valeurs qu'une seule fois Je pense que l'erreur vient d'ici.
      0
      1. j ai rectifier le truc ..ca ne marche tjr pa :s
        0
        1. Ce n'est plus la même erreur... Peux-tu donner le début de ton script, jusqu'à la ligne 38 ?
          Je n'ai jamais vu ce message d'erreur avant, il semblerait que tu aies refermé ta connexion au serveur trop tôt .
          0
          1. <html>
            <body>
            <?php

            if ( isset($_FILES['image']) )
            {
            $ret = false;
            $img_blob = '';
            $img_taille = 0;
            $img_type = '';
            $img_nom = '';
            $taille_max = 25000000;
            $hote = 'localhost';
            $base = 'documents';
            $user = 'root';
            $pass = '';
            $ret = is_uploaded_file ($_FILES['image']['tmp_name']);
            if ( !$ret )
            {
            echo "Problème de transfert";
            return false;
            }
            else
            {
            // Le fichier a bien été reçu
            $img_taille = $_FILES['image']['size'];
            if ( $img_taille > $taille_max )
            {
            echo "Trop gros !";
            return false;
            }
            $img_type = $_FILES['image']['type'];
            $img_nom = $_FILES['image']['name'];
            $img_blob = file_get_contents ($_FILES['image']['tmp_name']);
            $cnx = mysql_connect ($hote, $user, $pass) or die (mysql_error ());
            $ret = mysql_select_db ($base) or die (mysql_error ());
            mysql_query ("INSERT INTO images (img_nom,img_taille,img_type,img_blob) VALUES ('$img_nom', '$img_taille', '$img_type', '".mysql_real_escape_string($img_blob)."') ") or die (mysql_error ());
            mysql_close();
            }
            }
            ?>

            </body>
            </html>

            voila le scripte en entier ...c pour uploader une image et la mettre dans une table mysql voila
            0
        2. Il est gros comment le fichier que tu essayes de charger ? Il n'y aurait pas une limitation au niveau de ta base de données ? Essaye avec un tout petit fichier pour voir.
          Je ne te répondrai pas tout de suite, je vais m'absenter quelques heures.
          0
          1. ya pa de probleme c est egntil de m accorder un peu de temps quand meme :)
            j ai essaiyr avec un petit document text et ca marche !!
            si tu trouve une solution pr l image fait moi signe ..je v chercher de mon coté aussi ! merci
            0
        3. Donc le problème, c'est une limitation de taille ou de durée...
          Ça marcherait dans doute nettement mieux si tu sauvegardais tes fichiers avec le système de fichier (il est fait pour ça...), dans un dossier quelconque avec un move_uploaded_file, et que tu n'enregistres dans la base que le nom du fichier. Personnellement, j'ai toujours procédé comme ça.
          0
          1. oui c ce que j" ai fait pour les documents PDF.
            j enregistre le path dans la base de donnees et le document sur un fichier du serveur WAMP .
            le probleme maintenant c est de telecharger ce document du serveur :D. si c possible de m aider encore merci .
            0
        4. Bonsoir

          Un simple lien suffit, si tu as mis le document dans un dossier accessible par http.
          0
          1. j ai pa compris ce que tu voulai dir !

            <html>
            <body>
            <?php

            if ( isset($_FILES['pdf']) )
            {
            $ret = false;
            $pdf_titre= '';
            $nom='';
            $pdf_description='';
            $pdf_taille = '';
            $chemin='d:/wamp/www/fichiers/';
            $rep_destination='';
            $hote = 'localhost';
            $base = 'gestiondoc';
            $user = 'root';
            $pass = '';
            $ret = is_uploaded_file ($_FILES['pdf']['tmp_name']);
            if ( !$ret )
            {
            echo "Problème de transfert";
            return false;
            }
            else
            {

            $pdf_titre=$_POST['titre'];
            $pdf_description=$_POST['description'];
            $pdf_taille = $_FILES['pdf']['size'];
            $nom=$_FILES['pdf']['name'];
            $pdf_url=$chemin.$nom;
            move_uploaded_file($_FILES['pdf']['tmp_name'],$chemin.$_FILES['pdf']['name']);
            $cnx = mysql_connect ($hote, $user, $pass) or die (mysql_error ());
            $ret = mysql_select_db ($base) or die (mysql_error ());
            mysql_query ("INSERT INTO pdf (pdf_titre,pdf_url,pdf_description,pdf_taille,pdf_name) VALUES ('$pdf_titre','$pdf_url','$pdf_description','$pdf_taille','$nom')") or die (mysql_error ());
            mysql_close();

            }

            }

            ?>
            </body>
            </html>
            voila mon code donne moi ton avis et merci encore !
            0