Probleme en registrement caractères spéciaux "quote"
payetonju
Messages postés436Date d'inscriptionmercredi 26 septembre 2007StatutMembreDernière intervention 2 juillet 2014
-
13 août 2009 à 13:02
nautilus99
Messages postés661Date d'inscriptionvendredi 26 septembre 2008StatutMembreDernière intervention18 septembre 2009
-
14 août 2009 à 18:13
Bonjour,
J'ai un petit probleme, je suis en train de créer une interface de saisie de matériel, et dans mes champs ça bug quand j'entre un apostrophe.
Je commence par faire un INSERT INTO pour ajouter le produit dans la base, et je récupère la valeur du champs comme ceci :
simplequote est une fonction appelée au préalable :
function simplequoteencode( $Chaine )
{
return str_replace("'","’",$Chaine);
}
(le code n'est peut etre pas correct à ce niveau là, mais après plein plein de tests, ça ne marche toujours pas.)
Et du coup dans la base, quoi que je fasse ça enregistre en brut ce que je mets dans la fonction (ici c'est "’") et quand je met une apostrophe le champs se coupe à partir de là.
payetonju
Messages postés436Date d'inscriptionmercredi 26 septembre 2007StatutMembreDernière intervention 2 juillet 20144 13 août 2009 à 15:38
bonjour !
Dans l'enregistrement je n'ai aucnu probleme, je vois bien l'apostrophe qui apparait, c'est à la lecture des champs que ça supprime tout ce qu'il y a apres l'apostrophe.
J'ai essayé avec addslashes et stripslashes mais en vain.
nautilus99
Messages postés661Date d'inscriptionvendredi 26 septembre 2008StatutMembreDernière intervention18 septembre 20091 14 août 2009 à 18:13
Il n'y a pas d'équivalent au mysql_real_escape_string, et ce pour une bonne raison, ODBC est une interface de connection abstraite, avec de spilotes sous-jacents pour une collection de bases de données différentes, pour lesquels les chaînes d ecaractères ne se traitent pas de manière identique.
Si MySQL natif, au moins jusqu'à sa version 4.1 utilise l'antislash en tant qu ecaractère d'échappement, un MySQL 5.0 ou supérieur lancé en mode SQL-99 ANSI utilisera le doublage des simple quotes en tant qu'échapement... etc.
mysql_real_escape_string permet d erésoudre cette incohérence entre les divers modes de fonctionnement du serveur.