Problème requête insert

bonjour les amis, j'ai un p^robléme au niveau requétes insert, je trouve que la requête est juste lorsque le champ type(textbox) ne contient pas une apostrophe et lorsque j'écrit dans la zone une texte comme(lettre d'instruction par exemple) le système confuse entre les quottes de la zone et les quottes de la requêtes et j'ai pas trouvé une solution jusqu'à mnt, merci d'avance

1 réponse

  1. Si tu utilise PHP pour faire ta requête et que la textbox est contenue dans la variable $texteInsert (donc par exemple : $texteInsert = $_POST['textbox']), tu peux faire ceci avant de mettre $texteInsert dans ta requête :

    $texteInsert = mysql_real_escape_string($texteInsert);


    Le principe de cette méthode c'est principalement d'ajouter des anti-slashes "\" devant les guillemets simples et doubles afin qu'ils ne "cassent" pas la requête.

    Lorsque tu le récupérera n'oublie pas de faire un stripslashes() sur le texte récupérer afin de retirer les anti-slashes avant de l'afficher sur la page :
    $texteRecup = stripslashes($texteRecup);


    Sinon si tu programmes dans un autre langage, le principe est le même, trouve une méthode ou fait la toi même, qui ajoutera des anti-slashes devant les simples et doubles guillemets.
    1. je développe asp.net langage c# et le problème n'est pas résolu en ajoutant ' \ 'devant le quotte, ça reste toujours compliqué
    2. merci la solution est de doublet l'apostrophe,
      public string DoubleQuote(string pValue)
      {
      int i;
      string s="";
      for (i = 0; i < pValue.Length; i++)
      {
      if (pValue[i] == '\'')
      {
      s += "''";
      }
      else
      {
      s += pValue[i];
      }
      }

      return s;

      }