2009-05-15 20 views
15

Soy bastante nuevo en PHP y he construido un sitio web de tamaño mediano usando llamadas estándar a bases de datos MySQL. Sin embargo, recientemente aprendí sobre PDO y espero saber de la comunidad si vale la pena cambiar de MySQL a PDO. Por seguridad he estado usando mysql_real_escape_string.MySQL versus PDO

Información de la página:
estoy usando una mezcla de INSERT y SELECT llamadas. Los datos devueltos por las llamadas SELECT no son masivos (no más de 30 registros devueltos usando LIMIT). Tampoco habrá una gran cantidad de INSERT s. El sitio actualmente no está activo, por lo que realizar cambios ahora es fácil.

En sus opiniones profesionales, ¿vale la pena el tiempo de cambiar el sitio a PDO desde MySQL? ¿O quedarse con MySQL es igual de bueno? O, en otras palabras, ¿cuál sería el motivo, si es que hay alguno, para cambiar a PDO ahora?

+5

La mayor desventaja de usar PDO que he visto hasta ahora: Las personas que cambian a PDO aún intentan usar 'mysql_real_escape_string()', y luego publican un montón de preguntas duplicadas en StackOverflow cuando no funciona: P –

Respuesta

33

DOP tiene las siguientes ventajas sobre las funciones mysql_ *:

  • Es entre bases de datos, lo que significa que es la misma interfaz para diferentes bases de datos relacionales.
  • Ayuda a proteger contra las inyecciones de SQL.
  • Es mucho más limpio (utiliza un enfoque orientado a objetos).

Esta pregunta se ha hecho antes, es posible que desee echar un vistazo a las respuestas:

Si va a iniciar un nuevo proyecto, sugeriría estrictamente el uso de PDO o una biblioteca/ORM de nivel superior. Si ya tiene un montón de código escrito sin él, puede que no valga la pena.

+0

Gracias por la respuesta rápida. Sí, vi esas otras publicaciones que fueron útiles. Me preguntaba si valdría la pena cambiar a PDO. No iba a cambiar, pero ahora que había aprendido sobre PDO, sentía curiosidad por cambiar, o si seguir con MYSQL estaría bien. – justinl

+0

Bueno, si ya tienes un montón de código escrito, no me molestaría, pero para cualquier proyecto nuevo, sugeriría estrictamente PDO. –

+0

Sí, hay una buena cantidad de código. Desearía haberlo aprendido antes.Pero es bueno saber que no es el fin del mundo si no lo uso. ¡Gracias de nuevo! – justinl

4

PDO tiene las ventajas enumeradas anteriormente en las páginas vinculadas: abstracción de base de datos (es decir, su código se hace portátil en una variedad de sabores de DB), maneja muchos de los problemas de seguridad habituales para usted si usa su funciones de declaración preparadas y devuelve resultados como instancias de clase (que por sí misma pueden mejorar mucho su código fomentando un enfoque orientado a objetos), etc., etc.

Sin embargo, el mejor enfoque sería que usted examine un ORM biblioteca como Doctrine. Puede parecer exagerado dado el tamaño de su proyecto, pero, francamente, nunca es demasiado temprano para comenzar a aprender las mejores prácticas. Una excelente visión general de cómo construir a prueba de balas, aplicaciones de bases de datos mantenibles dadas por el desarrollador principal del Zend Framework se puede ver en http://mtadata.s3.amazonaws.com/webcasts/20090724-playdoh.wmv