¿Cuáles son las razones técnicas por las que no debería utilizar las funciones mysql_*()
en mis aplicaciones PHP? Me refiero a funciones como mysql_query()
, mysql_connect()
o mysql_real_escape_string()
.
Cuando las utilizo en mi sitio funcionan bien, ¿por qué no debería utilizarlas?
Estás leyendo una traducción autorizada de la pregunta Why shouldn't I use mysql_* functions in PHP? planteada por Second Rikudo en StackOverflow.
Respuestas
Todas estas funciones pertenecen a la extensión MySQL
de PHP. Los motivos por los que no deberías utilizar esta extensión son los siguientes:
- Ya no se sigue desarrollando de forma activa.
- Se ha declarado oficialmente obsoleta en PHP 5.5 y es casi seguro que será eliminada en la siguiente versión.
- No permite su uso mediante objetos.
- No soporta algunas características importantes:
- Consultas asíncronas y no bloqueantes.
- Consultas con parámetros y prepared statements.
- Procedimientos almacenados.
- Sentencias múltiples.
- Transacciones.
- Las nuevas funcionalidades a partir de MySQL 5.1.
Como la extensión ha sido declarada obsoleta, si la utilizas tu código no estará preparado para ejecutarse en versiones futuras de PHP.
En el manual oficial de PHP puedes encontrar una comparativa entre las diferentes extensiones de MySQL que son mysql
, mysqli
y pdo
.
@librosweb