[résolu] Insérer dans sql un enregistrement avec un '


OTP
Modérateur
Modérateur
 
Messages: 19532
Inscription: 16 Déc 2005

[résolu] Insérer dans sql un enregistrement avec un '

Message le Lun Aoû 13, 2007 12:03

Bonjour,

Je n'arrive pas à faire un :

Code: Tout sélectionner
INSERT INTO rss_item (id, id_flux, titre, lien, date, texte) VALUES ('1', '$id_du_flux', '$row[0]', '$row[1]', '$row[2]', '$row[3]')";


Parce que $row[3] contient des ' .

Comment puis-je m'en sortir ?

Merci d'avance,

Michaël
Dernière édition par OTP le Mar Aoû 14, 2007 9:46, édité 1 fois.


zeb
WRInaute accro
WRInaute accro
 
Messages: 4560
Inscription: 5 Déc 2004

Message le Lun Aoû 13, 2007 12:10

addslashes($row[3]) et stripslashes($data) a la lecture il me semble.


OTP
Modérateur
Modérateur
 
Messages: 19532
Inscription: 16 Déc 2005

Message le Lun Aoû 13, 2007 12:17

Merci.
Du temps que j'y suis et que je tiens un pro, mes caractères accentués font ''tout bizarre'' une fois inséré dans la base. Comment faire ?

Michaël


zeb
WRInaute accro
WRInaute accro
 
Messages: 4560
Inscription: 5 Déc 2004

Message le Lun Aoû 13, 2007 12:22

tout bizare comment ?

as tu défini le type de jeux de caractère utilisé dans ta base ?

un pro, un pro ~ ... vaste affaire a discuter au coin du feu.


OTP
Modérateur
Modérateur
 
Messages: 19532
Inscription: 16 Déc 2005

Message le Lun Aoû 13, 2007 12:30

J'obtiens dans la base, par exemple, é au lieu de é.

Pas défini de jeux de caractères (je ne savais pas que ça existait).

Et en plus ce que je stocke risque de ne pas être codé de la même façon d'un enregistrement à l'autre !


biscuit
WRInaute impliqué
WRInaute impliqué
 
Messages: 519
Inscription: 5 Juin 2006

Message le Lun Aoû 13, 2007 12:30

Il faut que ta page utilise le même charset (définit par doctype) que ta base (tu peux le voir sur la page d'accueil de phpmyadmin).

Si ce n'est pas le cas tu peux forcer le charset avec
Code: Tout sélectionner
SET NAMES 'utf8' ou SET NAMES 'latin1'

à faire dès l'ouverture de ta connexion à mysql...


zeb
WRInaute accro
WRInaute accro
 
Messages: 4560
Inscription: 5 Déc 2004

Message le Lun Aoû 13, 2007 12:36

dans phpmyadmin sélectionne la table concernée clique sur Opérations (en haut) et de la tu peux jouer avec Interclassement

visiblement on dirait que tes caractères sont en utf8 alors que le type de caractère manipulé par ta page doit être de l'iso je sais pas quoi.

petit-ourson
WRInaute impliqué
WRInaute impliqué
 
Messages: 855
Inscription: 31 Mai 2004

Message le Lun Aoû 13, 2007 12:49

zeb a écrit:addslashes($row[3]) et stripslashes($data) a la lecture il me semble.

Il me semble (enfin j'en suis certain) qu'il vaut mieux s'orienter vers du mysql_real_escape_string($row[3]) lors de l'insertion et rien lors de la lecture (ou un htmlentities).


OTP
Modérateur
Modérateur
 
Messages: 19532
Inscription: 16 Déc 2005

Message le Lun Aoû 13, 2007 13:03

Merci à tous, je vais tester ces pistes


bproductiv
WRInaute accro
WRInaute accro
 
Messages: 4173
Inscription: 27 Déc 2004

Message le Lun Aoû 13, 2007 13:08

mysql_real_escape_string() pour echapper les caractères génant l'insertion... moins de manips (pas de removeslash à la lecture)


OTP
Modérateur
Modérateur
 
Messages: 19532
Inscription: 16 Déc 2005

Message le Lun Aoû 13, 2007 13:10

zeb a écrit:Interclassement


Je ne trouve pas !


zeb
WRInaute accro
WRInaute accro
 
Messages: 4560
Inscription: 5 Déc 2004

Message le Lun Aoû 13, 2007 13:17

-http://www.agir19.free.fr/Interclassement.png


OTP
Modérateur
Modérateur
 
Messages: 19532
Inscription: 16 Déc 2005

Message le Lun Aoû 13, 2007 13:36

Je n'ai pas ça sur phpMyAdmin 2.8.2.4
Snif...

Leguerinos
WRInaute discret
WRInaute discret
 
Messages: 143
Inscription: 26 Juil 2006

Re: Insérer dans sql un enregistrement avec un '

Message le Lun Aoû 13, 2007 13:48

Code: Tout sélectionner
INSERT INTO rss_item (id, id_flux, titre, lien, date, texte) VALUES ('1', '$id_du_flux', '$row[0]', '$row[1]', '$row[2]', '$row[3]')";


Il n'y a pas besoin d'une fonction mysql, il suffit simplement de doubler le caractère a protéger...

:D


OTP
Modérateur
Modérateur
 
Messages: 19532
Inscription: 16 Déc 2005

Re: Insérer dans sql un enregistrement avec un '

Message le Lun Aoû 13, 2007 13:52

Leguerinos a écrit:Il n'y a pas besoin d'une fonction mysql, il suffit simplement de doubler le caractère a protéger...


Ce que veut dire ?

[résolu] Insérer dans sql un enregistrement avec un '

Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité