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. 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
                2. 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