Insertion de données

ayntic
Invité n'ayant pas de compte PHPfrance

06 mai 2007, 13:20

Slt à toutes et à tous !
Je viens de concevoir un logiciel avec PHP5 et j'ai d'énormes difficultés à inserrer des données contenant une quote (') dans ma base de données.

SVP, dites moi s'il y'a oui ou non un script qui me permette d'insérer ces données, car il y va de la survie de ce logiciel.

Je vous en remercie infiniment !!!

Mammouth du PHP | 991 Messages

06 mai 2007, 13:25

tourne toi vers la fonction stripslashes()
DevOps, Symfony4, Hoa

ayntic
Invité n'ayant pas de compte PHPfrance

06 mai 2007, 13:38

Oui, j'ai plusieurs fois utilisé cette fonction mais c'est le même message d'erreur qui s'affiche .

Mammouth du PHP | 505 Messages

06 mai 2007, 17:55

Sous oracle, pour insérer une quote, il faut en mettre 2 de suite, '' attention, c'est bien 2 quotes et pas des guillemets.

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

06 mai 2007, 19:05

tourne toi vers la fonction stripslashes()
Err... non? :-k stripslashes() retire les backslashes \, en gros il ne sert qu'à ceux qui utilisent magic_quotes

ayntic, ça dépend de ton SGBD mais il te faut utiliser l'équivalent de mysql_real_escape_string(), à part pour Oracle où, comme titerm le disait, il faut doubler les ' à l'aide de str_replace()

Mammouth du PHP | 991 Messages

06 mai 2007, 19:59

oups je pensait que ... en effet je me suis planter je pensait a addslahes afin d'echapper les caracteres pur qu'il n'interfere pas dans l'insertion mais apparament je me suis encore planter .... damned
DevOps, Symfony4, Hoa

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

06 mai 2007, 20:30

Oui, attention à addslashes, ça ne marche pas forcément toujours. Il faut lui préférer la fonction "escape" de chaque SGBD: mysql_real_escape_string(), mysqli_real_escape_string(), pg_escape_string(), etc... C'est pas pour rien qu'ils ont créé toutes ces fonctions, il y a des raisons (longues et compliquées donc vous me pardonnerez ;)) donc n'utilisez pas addslashes :lol:

Mammouth du PHP | 693 Messages

06 mai 2007, 20:33

D'ailleur, j'en profite pour demander si ces fonctions sont une protection efficace contre les injections ?

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

06 mai 2007, 20:40

Oui, elles sont faites pour ça.

PS: ...et pas que pour ça, utilisez-les systématiquement pour n'importe quelle chaîne de caractères que vous utilisez dans n'importe quel type de requête, sinon peuvent arriver des trucs bizarres.
Modifié en dernier par Hubert Roksor le 20 mai 2007, 14:51, modifié 1 fois.

Eléphanteau du PHP | 17 Messages

20 mai 2007, 13:15

Mille et un merci à vous tous car évidemment, la fonction la mieux adaptée à mon SDGB (après plusieurs essais) est belle et bien mysql_real_escape_string().
Je voudrais tout de même m'excuser pour ce temps de réponse car j'avais des problèmes de connexion.
Mon logiciel est presque fini et nous en sommes aux test...

BIG THINKS TO Hubert Roksor, orgerix, thehawk and titerm pour leur aide.
--- Ayntic ---

Mammouth du PHP | 991 Messages

20 mai 2007, 13:25

BIG THINKS TO Hubert Roksor, orgerix, thehawk and titerm pour leur aide.
Ca ca fait plaisir ^^ :wink: :!: :!:
DevOps, Symfony4, Hoa