Aide sur requete d'jaout sql via form php

Bonjour,

Voici ma requête sql

mysql_query("INSERT INTO `actions pm`
( PM, submitter, FORMATION, Datepropos, Commentaire, SOCIETE, BIEN, ceexistant, applicable )
VALUES('$PM', '$submitter', '$typemodif', '$date', '".$commentaire."', '$societe', '".$bien."', '".$ceexistant."', '')") or die(mysql_error());

Seulement, dans mon formulaire, le champ "commentaire" est susceptible de contenir des apostrophes.
Comment traduire cette requête pour tout s'exécute correctement ?

Merci d'avance pour votre aide.
Configuration: Windows XP
Internet Explorer 7.0

2 réponses

  1. Salut,

    Utilise les fonctions PHP addslashes (pour mettre en bdd) et stripslashes (pour recuperer de la bdd).

    Tu trouveras facilement des explications dessus.
    Par exemple:

    mysql_query("INSERT INTO `actions pm`
    ( PM, submitter, FORMATION, Datepropos, Commentaire, SOCIETE, BIEN, ceexistant, applicable )
    VALUES('$PM', '$submitter', '$typemodif', '$date', '".addslashes($commentaire)."', '$societe', '".$bien."', '".$ceexistant."', '')") or die(mysql_error());

    voir aussi:

    http://www.allhtml.com/articles/detail/249

    Bonne journée,
    Barracuda
    1. Salut et merci pour ta réactivité

      Ce que tu veux me dire donc, c'est qu'avant de faire mes requêtes, j'ajoute :

      // Ajout des backslashes
      $commentaire=addslashes($commentaire);

      Puis à la relecture (qui est pour moi dans un autre fichier PHP) j'écris :
      $commentaire=stripslashes($commentaire);

      Donc, dans ma base sql, les slashs apparaissent donc dans mon champ commentaire ?
  2. Oui tu peut faire comme cela ou directement dans la requête comme je l'avais fait dans mon post précédent.

    Effectivement, l'ajout des backslahes se verra dans ta bdd, c'est pourquoi on utilise stripslashes pour les récupérer.