sql >> Base de Datos >  >> RDS >> Mysql

PHP:mysql contra mysqli contra pdo

El diseño de mysql_query La función es tal que debe tener cuidado de escapar de todos y cada uno de los datos que está inyectando, y si pierde incluso uno, toda su aplicación puede ser destruida por un herramienta automática de explotación de vulnerabilidades de SQL .

Ambos mysqli y marcadores de posición de soporte de PDO que son requeridos para asegurarse de que sus consultas estén a salvo de errores de inyección SQL. Llamando a mysql_real_escape_string en todo no solo es tedioso, sino propenso a errores, y ahí es donde surgen los problemas.

El mysql Las funciones son un producto de los primeros días de PHP y son significativamente más limitadas que las nuevas funciones orientadas a objetos que ofrecen tanto mysqli como opción, o PDO por diseño.

Hay varias muy buenas razones para usar una de estas dos nuevas interfaces, pero la más importante es que mysql_query La función es simplemente demasiado peligrosa para usar en el código de producción. Con él siempre estarás a un error de algunos problemas muy serios.

Hay una razón por la que siguen apareciendo copias de bases de datos llenas de contraseñas y números de tarjetas de crédito. Tener un punto de inyección SQL obvio hace que sea casi demasiado fácil hacerse cargo por completo de un sitio.