Tuto Livre d'or, petite question sur PDO

Rechercher

Tuto Livre d'or, petite question sur PDO

Par Kijer  -  2 reponses  -  Le 28/04/2009 22:33  -  Editer  - 

J'ai remarqué que sur les 3 requètes , il y a n'a une en "query" et non prepare comme les autres.

Une raison ?

Seconde question, un peu en dehors du tuto mais ca reste le même thème !

Tu utilises

bindParam()

pour protéger les données, sur la doc il y a aussi

bindValue

pour également protéger, mais je n'ai pas compris la nuance, serai tu me l'expliquer stp ?

 

Merci

 

Réponses apportées à cette discussion

Par Emacs  -  Le 29/04/2009 21:45  -  Haut de page  - 

Salut,

La méthode prepare() permet de réaliser des requêtes préparées, c'est-à-dire des requêtes SQL contenant des paramètres qui seront traités par le SGBD indépendamment. Une requête préparée est plus sécurisée car les paramètres sont gérés par le SGBD mais elles sont aussi plus performantes lorsqu'elles sont exécutées plus de deux fois avec avec des paramètres différents. Une requête préparée est analysée et compilée au premier appel, puis mise en cache sur le serveur afin d'être exécutée plus rapidement aux appels suivants. La méthode query() ne contient qu'une requête simple sans paramètre. De plus, elle n'est pas réexécutée dans la suite du programme, donc il n'est pas nécessaire d'utiliser prepare(), query() suffit.

bindParam() et bindValue() sont identiques mais bindParam() enregistre une variable par référence contrairement à bindValue(). Par conséquent, avec bindParam(), tu bind une seule fois et ensuite tu changes tes variables et tu exécutes ta requête préparée avec execute(). Alors qu'avec bindValue(), tu es obligé de réappeler bindValue() à chaque fois que tu souhaites changer la valeur d'un paramètre d'une requête préparée.

 
Par Kijer  -  Le 30/04/2009 11:45  -  Haut de page  - 

Ok !

Merci pour ces éclairsissements !

 

 

 

Ajouter une réponse à la discussion

Seuls les membres connectés sont autorisés à poster dans les forums !

Identifiez-vous
Join |  ID/MDP? |