Vous n'êtes pas identifié(e).
Bonjour à tous,
Juste une question en passant concernant PDO.
Pour me faciliter la vie avec l'insertion de données de formulaire dans la dB, j'ai décidé d'utiliser
le truc suivant qui consiste à :
1) lire le champs d'une table ($tbl)
2) comparer ces champs avec les champs du formulaire ($_POST)
3) insérer dans la dB la valeur des champs communs avec PDO
puis
Maintenant le bénéfice n'en est plus un à l'heure d'échapper les caractères comme apostrophe par exemple.
En effet, je ne sais plus où mettre les paramètres attachés ( bound parameters)...
Avez-vous une idée de comment conserver les bénéfices de la boucle sur les champs et de la sécurisation des données
offerte par PDO et les paramètres attachés?
merci pour vos lumières et à bientôt.
Yannick
Hors ligne
Maintenant le bénéfice n'en est plus un à l'heure d'échapper les caractères comme apostrophe par exemple.
Ne trouverais-tu pas ton bonheur dans un petit addslashes() ?
MERCI de lire le mode d'emploi avant de poster !!
Hors ligne
Oui, j'y ai pensé d'emblée, mais ceci ne permet pas de profiter de la sécurité apportée par PDO + tu te retrouves avec des antislashes un peu partout dans ta dB et ensuite tu dois les stripslasher...
Raaaahh, le web c'est quand même un métier!
Hors ligne
Le web c'est quand même un métier!
Beaucoup trop l'oubli !
Bon, je pense aussi que tu avais pensé à un bon vieux mysql_real_escape ....... et bien rassure toi : en pdo, ça marche aussi
Il faut alors remplacer par $instancePDO->quote($variable);
Attention, il faut faire des petites modifs (minimes), en effet la méthode quote() ajoute elle même les simple quotes,
donc là où tu avais avant:
il faut mettre :
MERCI de lire le mode d'emploi avant de poster !!
Hors ligne
Pas mieux...
J'essaie maintenant de faire une boucle sur bindParam, mais il n'insert qu'une seule et même valeur pour tous les champs.
De retour à la mine.
Hors ligne
Eurêka, il fallait attacher une valeur (bindValue) et pas un paramètre bien sûr (bindParam).
( J'en ai profité pour réécrire un petit peu la façon de transformer mon tableau $fields en une chaîne ).
Voici :
Plus besoin de stripslashes, quote ou mysql_real_escape!
Dernière modification par Yannick (27-05-2010 16:03:56)
Hors ligne