[Php-avanzado] mysqli vs PDO
Leonardo Tadei - Pegasus Tech Supply
leonardot en pegasusnet.com.ar
Vie Mar 21 17:06:45 ART 2014
Hola Gabriel,
El vie, 21-03-2014 a las 16:48 -0300, Gabriel Lenti escribió:
> Hola phperos!
>
>
> Vengo a Uds con la duda en busca de sus consejos/experiencias: mysqli
> o PDO. Estoy armando la pagina tesina del curso, y me parecio buena
> oportunidad para explorar la utilizacion de la extension PDO, ya que
> durante el curso mismo nos familiarizamos bastante con mysqli.
Sí, la oportunidad es buena, pero no van a faltar otras...
> Anduve haciendo un poco de investigacion por la web pero no pude
> encontrar mas q opiniones personales sobre el asunto, nada
> verdaderamente objetivo q me ayude a inclinarme por el uso de una u
> otra extension.
Son cosas distintas.
MySQLi es un módulo para acceder a MySQL.
PDO es una capa de abstracción para acceder a bases de datos, entre las
que figura MySQL.
> Si me encontre con la idea frecuente de usar PDO al programar en
> objetos, y mysqli para el enfoque procedural.
Entonces es una idea frecuente parcialmente errónea: MySQLi tiene
también una interfaz orientada a Objetos, permitiendo así usarla para
ambos paradigmas según cómo se la use.
http://ar2.php.net/manual/es/mysqli.quickstart.dual-interface.php
Por otra parte, cuando se diseña con POO, es bueno que la el uso de la
DB tenga la sintaxis del paradigma, pero usar solo PDO no es usar bien
Objetos, ya que solo se implementa el muy extendido y dañino modelo del
Active Record.
> Aunque tambien encontre algunos programadore procedurales que usan
> PDO para tratar con la base de datos, y que incluso arman un par de
> clases con los metodos usados en las querys. (yo estaba pensando hacer
> algo asi porque mi manejo de objetos es mas bien basico a la fecha,
> será mucha mezcolanza??).
Sí, es mucha mezcolanza y requiere dominar muy bien ambos paradigmas de
programación para no irse para el lado de los tomates.
> Me interesa aprender a usar PDO por varios motivos: la portabilidad,
> la posibilidad de armar querys preparadas q saneen las variables de
> entrada, el manejo de transacciones, entre otras.
La portabilidad es el único motivo por el que se hacen capas de
abstracción.
Consultas preparadas soportan ambas.
El maneja de transacciones lo provee la DB y no la biblioteca de
acceso.
> Por otro lado, tambien q no todos los motores de DB soportan
> transacciones, y hace poco descubri q tb mysqli permite contruir
> querys preparadas (q supongo seran saneadas de la misma forma q con
> PDO, no es asi??).
Hasta dónde sé, MySQLi no sanea las entradas, pero la verdad, no estoy
seguro.
> Todo comentario o dato concreto q ayude a vislumbrar las
> ventajas/desventajas del uso de cada extension sera muy bienvenido!
Usá MySQLi para no tener un problema más todavía al escribir el trabajo
final.
Después, si se abre, hacé el curso de POO y ahí nos metemos con PDO ;-)
> Saludos!
=mente!
--
Leonardo Tadei
leonardot en pegasusnet.com.ar
Web: http://leonardo.tadei.com.ar
Firma pública: http://www.pegasusnet.com.ar/LeonardoTadei-public.key
Más información sobre la lista de distribución Php-avanzado