PDO : ATTR_EMULATE_PREPARES

Eléphant du PHP | 63 Messages

14 nov. 2008, 16:14

Bonjour à tous,

j'aimerais savoir la fonction de ATTR_EMULATE_PREPARES dans le code suivant :

Code : Tout sélectionner

... $dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, TRUE); ...
J'ai cherché sur le site php.net, mais je n'ai pas trouvé la signification.

Merci d'avance

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

14 nov. 2008, 17:16

Il ne s'agit pas d'une fonction, mais d'un attribut statique de la classe PDO, très probablement une constante. On peut donc supposer que pour ton instance $dbh, tu es en train de passer cet attribut à TRUE.

Après, à quoi il sert et pourquoi tu fais ça, j'en ai pas la moindre idée, mais google et les documentations de pdo sont nos amis :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 63 Messages

14 nov. 2008, 17:26

Il ne s'agit pas d'une fonction, mais d'un attribut statique de la classe PDO, très probablement une constante. On peut donc supposer que pour ton instance $dbh, tu es en train de passer cet attribut à TRUE.

Après, à quoi il sert et pourquoi tu fais ça, j'en ai pas la moindre idée, mais google et les documentations de pdo sont nos amis :)
merci pour la réponse. J'avais saisi que ce n'était pas une fonction mais je pensais que c'était un paramètre connu. Je suis allé sur le site php.net voir la doc PDO et il n'y avait rien de spécifié dessus. J'ai eu cet exemple dans un bouquin.

@+

Eléphant du PHP | 61 Messages

08 nov. 2011, 17:17

Bonjour,
Il sagit de la véritable émulation prepare. lorsque ATTR_EMULATE_PREPARES est mis a false
(il est true par default !)
Pour ceux qui débutent :oops:

Avec True (de base) c'est un simulacre de prepare
1) le prepare est gardé au chaud par PDO
2) a l'exec PDO envoie le tout a MySql qui transmets a SQL ...
donc pour SQL tout se passe comme si prepare n'avait pas eu lieu

Avec False c'est le vrais prépare
1) le prépare est envoyé a MySql qui le soumet a SQL le prépare est testé et pret a recevoir autant que voulu des exec !
2) l'exec n'envoie donc que des variables qui sont sécurisées.

HOP THIS HELP
Un sourire pour conclure ;-)