Ajouter de variable avec ' en bdd

Résolu
Bonjour,

Je voudrais pouvoir stocker dans ma base de donnée des noms contenant parfois des apostrophes j'ai donc ajouter :

$nom = addslashes($_POST['Nom']);
mssql_query ("INSERT INTO tableTest (name) VALUES ('".$nom."')");

Seulement ça me mets les mêmes erreurs que sans le addslashes...

merci,

8 réponses

  1. Seulement ça me mets les mêmes erreurs que sans le addslashes...
    Et c'est quoi les erreurs ?

    et essayes de remplacer ta ligne par :

    mssql_query ("INSERT INTO tableTest (name) VALUES ('".$nom."')") or die(mssql_error());
    si ca trouve une erreur dans ta requête, ca te le dira
    0
    1. Si je mets L'eclerc ça me met ça, par contre sans apostrophe cela fonctionne:

      Warning: mssql_query() [function.mssql-query.html]: message: Syntaxe incorrecte vers 'eclerc'.

      Warning: mssql_query() [function.mssql-query.html]: message: Ouvrez les guillemets après la chaîne de caractères ')'.

      Si je fais un echo du addslashes j'ai bien: L\'eclerc

      Merci
      0
      1. essayes de faire un echo "INSERT INTO tableTest (name) VALUES ('".$nom."')";
        pour voir ce que ca essaye d'envoyer
        0
        1. resultat du echo:

          INSERT INTO tableTest (name) VALUES ('L\'eclerc')
          0
          1. Bizarre chez moi en faisant ca ça marche :O
            Enfin c'est un serveur MYSQL et pas MSSQL, ceci explique cela, mais ca n'explique pas où est l'erreur ^^
            0
            1. Si c'est pour afficher en html après tu peux toujours remplacer les apostrophes de tes string par '
              C'est ce que j'ai fait sur un site et ça marche bien.
              0
              1. Après une courte recherche, il s'avère que pour mssql, il faut "double-apostropher"

                To insert an apostrophe into the database using SQL you need to "double-up" the apostrophes
                0
                1. J'ai contourné le problème en bidouillant mais je t'avouerais ne pas trop comprendre pourquoi ça marche. Je met ce que j'ai fais si ça peut servir à d'autres:

                  Remplacer le ' par deux apostrophes.
                  $nom = str_replace("'","''",$_POST['Nom']);

                  Ce qui est bizarre c'est que le echo me met: VALUES ('L''eclerc') alors que dans ma bdd un seul apostrophe est présent.

                  Enfin merci de ton aide.
                  Bonne journée!
                  0