Php upload pour insérer le nom d'une image dans une table

Bonjour,

J'essai d'utiliser l'extension php upload pour insérer le nom d'une image dans une table (le chargement de l'image fonctionne bien) mais apparamment cela fonctionne bien moins bien qu'avec du texte et d'autres données. Sauriez-vous quelle est la marche à suivre sachant que cette erreur s'affiche par-ce-que j'ai modifié le php.ini afin qu'il me retourne ce qui ne va pas. Dans un formulaire complet, tout fonctionne mis à part la récupération de la valeur de ce input file. Merci de votre aide.

Message d'ereur:

Column 'news_image' cannot be null

Comme si mon input file était "vide" (ce qui n'est pas le cas)

9 réponses

  1. pour voir ce que tu reçoit de l'input file fais:

    echo '<pre>';
    print_r($_FILES);
    echo '</pre>';
    
    0
    1. Merci beaucoup, je vais essayer comme ça.
      0
      1. oui mais ce que je t'ai donné c'est juste pour tester, pour voir le contenu de la variable globale $_FILES, après il faudra le suprimer
        0
        1. Voilà ce qu'affiche le résultat:

          array
          {
          }
          0
          1. tu as bien <input type="file" name="fichier" />
            0
            1. <input type="file" name="news_image" id="news_image" accesskey="i" />

              Je ne vois pas d'erreur
              0
              1. tu as bien mis
                echo '<pre>';
                print_r($_FILES);
                echo '</pre>';


                dans le script php qui reçoit les données du formulaire
                0
                1. Bonjour

                  As-tu bien mis method = "post" et enctype="multipart/form-data" dans ta balise <form> ?
                  0
                  1. Bonjour,

                    J'ai bien mis pour tester: echo '<pre>'; print_r($_FILES); echo '</pre>';et: method = "post" et enctype="multipart/form-data" aussi d'ailleurs les autre input sont bien récupérés et insérés dans la table quand je désactive le input file (en commentaire)
                    En fait quand je supprime de ma requête le input file, l'image se charge bien et les autres données sont enregistrées:
                    if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "news_envoi")) {
                    $insertSQL = sprintf("INSERT INTO news (news_titre, news_image, news_texte, news_lien, news_etat) VALUES (%s, %s, %s, %s, %s)",
                    GetSQLValueString($_POST['news_titre'], "text"),
                    GetSQLValueString($_POST['_name_'], "text"),
                    GetSQLValueString($_POST['news_texte'], "text"),
                    GetSQLValueString($_POST['news_lien'], "text"),
                    GetSQLValueString(isset($_POST['news_etat']) ? "true" : "", "defined","1","0"));
                    0