2011-10-27 15 views
5

cinque anni fa (! Veramente) Wez Furlong è stato lo sviluppatore capo di DOP e ha scritto questo:Posso usare istruzioni preparate per MySQL con PDO ora?

vi consiglio di utilizzare il seguente attributo quando si lavora con DOP :: MySQL, disponibile in PHP corrente 5.1.3 release candidate e istantanee :

$ db-> setAttribute (PDO :: ATTR_EMULATE_PREPARES, true);

Ciò causa l'utilizzo del parser di query nativo PDO invece delle API di istruzioni preparate native nel client mysql ed efficacemente elimina tali problemi.

Razionale è dato a http://wezfurlong.org/blog/2006/apr/using-pdo-mysql/

Tuttavia, egli non poteva rispondere se i problemi sono stati risolti, ora che sta usando DOP Mysqlnd (almeno suppongo che sia).

Qualcuno sa?

risposta

6

Sì, se si imposta ATTR_EMULATE_PREPARES su false (o 0) verranno utilizzate dichiarazioni preparate in modo reale.

Sort of. Ha ancora tutta la logica di fallback. Quindi, mentre mysqli :: prepare fallirebbe se la preparazione dal server fallisse, PDO non lo farà, poiché ricomincerà a emulare la preparazione. La ragione di ciò è che PDO può usare istruzioni preparate su versioni di MySQL che non la supportano, così come per istruzioni (come ALTER) che non supportano la preparazione.

Quindi userà le istruzioni preparate reali ogni volta che MySQL ti lascerà (di nuovo, solo se ATTR_EMULATE_PREPARES su falso) ...

Problemi correlati