Ajouter de variable avec ' en bdd

Résolu/Fermé
john - 5 août 2009 à 13:30
 john - 5 août 2009 à 14:07
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,
A voir également:

8 réponses

jeangilles Messages postés 816 Date d'inscription samedi 21 juin 2008 Statut Membre Dernière intervention 17 juillet 2012 185
5 août 2009 à 13:35
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
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
jeangilles Messages postés 816 Date d'inscription samedi 21 juin 2008 Statut Membre Dernière intervention 17 juillet 2012 185
5 août 2009 à 13:47
essayes de faire un echo "INSERT INTO tableTest (name) VALUES ('".$nom."')";
pour voir ce que ca essaye d'envoyer
0
resultat du echo:

INSERT INTO tableTest (name) VALUES ('L\'eclerc')
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jeangilles Messages postés 816 Date d'inscription samedi 21 juin 2008 Statut Membre Dernière intervention 17 juillet 2012 185
5 août 2009 à 13:56
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
M@dien Messages postés 437 Date d'inscription mercredi 29 juillet 2009 Statut Membre Dernière intervention 23 septembre 2010 74
5 août 2009 à 13:59
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
jeangilles Messages postés 816 Date d'inscription samedi 21 juin 2008 Statut Membre Dernière intervention 17 juillet 2012 185
5 août 2009 à 14:01
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
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