Requette qui ne fonctionne pas

Bonjour,

je cherche a insérer un champ avec grande valeur , voila ma requette
insert article(description,titre,image,id_user,Date_publication) value('".$wysiwyg."','".$titre."','".$image_user."',".$id_user.",now())";
La requette s'exécute mais parfois je mes dans le champ description j'insérer le code source d'une page donc le contenu est grand , la requette ne s'exécute pas , le type du champ description est "text" , j'envisage que la valeur est plus grand que la capacité supporter par le type text mais quel type je dois mettre ?? Merciii d'avance .

11 réponses

  1. Bonjour,

    je crois que varchar serai plus adapté car il peut contenir plus de text.

    Pour la requete d'insertion dans la table

    insert into article(description,titre,image,id_user,Date_publication) values ('".$wysiwyg."','".$titre."','".$image_user."',".$id_user.",now())";
    0
    1. Bonjour

      Ce ne serait pas plutôt quand la description (ou un autre champ) contient une apostrophe que tu aurais des problèmes ?
      0
      1. Merci le père. pour m'avoir répondu en fait c'est exactement ça le problème vous avez raison, j'insère un champ qui contient les code html donc il y a forcement des apostrophe c'est pour ça j'aurais une erreur j'ai essayer avec la fonction mysql_real_escape_string() mais ça m'insérer une champ vide .Merci d'avance n'hésitez pas a me répondre si vous voyez quoi faire
        0
        1. Si tu utilises les fonctions mysql 'standard', c'est bien mysql_real_escape_string() qu'il faut utiliser.
          Peux-tu montrer la façon dont tu appelles la requête et comment tu utilises mysql_real_escape_string() ?
          Si tu es prête à remettre des choses en cause, tu ferais d'ailleurs bien mieux de laisser tomber complètement les fonctions mysql_ (déjà dépréciées, bientôt obsolètes) pour utiliser PDO. Mais c'est un autre débat.
          0
          1. Voila ma requête :
            $req='insert marketbay_article(description,titre,image,id_user,Date_publication)
            value("'.mysql_real_escape_string ($wysiwyg).'","'.$titre.'","'.$image_user.'",'.$id_user.',now())';
            Merci :)
            0
            1. J'espère que tu as mis VALUES et non pas VALUE .
              Ça a l'air correct, sauf qu'il faudrait utiliser mysql_real_escape_string avec $titre et $image_user aussi.
              Et ceci n'est que la définition de la requête, où est le code qui l'exécute ?
              0
              1. Merci le père pour votre temps :)
                en fait oui j'ai mis value et non pas values mais le bizzard que la requéte s'execute mais il m'insére des champ vide dont les variable ou j'ai mis mysql_real_escape_string
                Voici le code :

                if(isset($_POST['area1']))
                $wysiwyg=$_POST['area1'];

                if(isset($_POST['titre']))
                $titre=$_POST['titre'];

                if(isset($_POST['image_user']))
                $image_user=$_POST['image_user'];

                if(isset($_POST['id_user']))
                $id_user=$_POST['id_user'];

                $req='insert marketbay_article(description,titre,image,id_user,Date_publication)
                values("'.mysql_real_escape_string ($wysiwyg).'","'.mysql_real_escape_string($titre).'","'.mysql_real_escape_string($image_user).'",'.$id_user.',now())';

                include ('CnxMarketBDD.php');
                mysql_query("SET NAMES UTF8") ;
                echo $req;
                $res=mysql_query($req) or die(mysql_error());

                if($res){
                ?>
                <SCRIPT LANGUAGE="JavaScript">
                alert('Article ajouté ');
                <!--document.location.href="ajouterArticle.php" ;-->
                </SCRIPT>
                <?php
                }
                mysql_close();
                ?>
                -1
                1. Non, ça n'est pas bizarre.
                  mysql_real_escape_string a besoin de connaître la connexion pour fonctionner convenablement. Il ne faut pas l'utiliser avant d'avoir fait la connexion.
                  Si tu déplaces tes deux lignes
                  include ('CnxMarketBDD.php');
                  mysql_query("SET NAMES UTF8") ;

                  pour les mettre AVANT $req=..., ça devrait mieux marcher.
                  0
                  1. yaaaay ça marche merci énormément le père. :D
                    je savais pas que la fonction fonctionne après la connexion , information de plus ;Merci
                    0
                    1. De rien :)
                      0