Insérer ' dans une BDD

Résolu/Fermé
zelos666 Messages postés 181 Date d'inscription mercredi 27 janvier 2010 Statut Membre Dernière intervention 20 juillet 2010 - 22 févr. 2010 à 17:01
zelos666 Messages postés 181 Date d'inscription mercredi 27 janvier 2010 Statut Membre Dernière intervention 20 juillet 2010 - 24 févr. 2010 à 15:01
Bonjour,

Je veux insérer plusieurs champs dans une base de donnée. Les champs contiennent des informations insérer pas un usager. Le problème, c'Est que lorsqu'on écrit dans un des champs une apostrophe « ' », mon insertion ne se fera pas car l'apostrophe va être vu comme étant la fin de l'insertion

Mon code d'insertion :
$query = "INSERT INTO $tableAnnonce(
			idUser,
			idType,
			entreprise,
			titre,
			debutParution,
			finParution,
			idTypeOrganisation,
			resume,
			details,
			contact,
			coordonnees
			)
			VALUES(
			".$idUser.", ".$idTypeAnnonce.", '".$this->clearTxt($entreprise)."', '".$this->clearTxt($titre)."', '".$debutParution."', '".$finParution."', '".$idTypeOrganisation."', '".$this->clearTxt($resume)."', '".$this->clearTxt($detail)."', '".$this->clearTxt($nomContact)."', '".$this->clearTxt($coordonnees)."');";
			
		mysql_query($query);


Ma fonction clearTxt :

public function clearTxt($string){
		$string = addslashes($string);
		return $string;
	}


Ma fonction clearTxt ajout un backslashe dès qu'il détecte une apostrophe. Pourtant, il ajout très bien mes backslash. J'ai aussi essayer avec mysql_real_escape_string, mais cela ne fonctionne pas plus.

J'ai mis les clearTxt aux chmpas qui ont des chances d'avoir des apostrophes. Si, par exemple, un usager insère un apostrophe dans le champs date, j'écrit un message d'erreur.

4 réponses

zelos666 Messages postés 181 Date d'inscription mercredi 27 janvier 2010 Statut Membre Dernière intervention 20 juillet 2010 12
23 févr. 2010 à 14:08
up
0
zelos666 Messages postés 181 Date d'inscription mercredi 27 janvier 2010 Statut Membre Dernière intervention 20 juillet 2010 12
23 févr. 2010 à 21:16
up
0
william7007 Messages postés 335 Date d'inscription dimanche 28 décembre 2008 Statut Membre Dernière intervention 23 mars 2010 46
24 févr. 2010 à 02:51
slt

avant d'ajout dans la bdd, fait des test sur tes champs du genre

addslashes($mon_champ);
0
zelos666 Messages postés 181 Date d'inscription mercredi 27 janvier 2010 Statut Membre Dernière intervention 20 juillet 2010 12
24 févr. 2010 à 15:01
J'ai fait les test et sa ne marche pas non plus, pourtant ils insère très bien les \ avant les caractères spéciaux telle que les apostrophe.

Par contre, j'ai eu une idée, je pourrais essayer de crypter ou quelque chose dans se genre mon string pour insérer. J'ai essayer avec rawurlencode. Sa ne marche pas non plus donc si vous avez une idée, se sera très apprécié.

Merci.

<edit>
Finalement, en retirant les clearTxt et les addslashes, l'insertion se faisait comme voulu. Je crois que j'avais pas besoin de me compliquer la vie avec les apostrophes.

Merci.
</edit>
0