Información general de los controladores de MySQL de PHP
PHP Manual

Elegir una API

PHP ofrece tres APIs diferenctes para conectarse a MySQL. Abajo se muestran las APIs proporcionadas por las extensciones mysql, mysqli, y PDO. Cada trozo de código crea una conexión al servidor de MySQL que se está ejecutando en "ejemplo.com" usando el nombre de usuario "usuario" y la contraseña "contraseña". Y se ejecuta una consulta para saludar al usuario.

Ejemplo #1 Comparación de las tres APIs de MySQL

<?php
// mysqli
$mysqli = new mysqli("ejemplo.com""usuario""contraseña""basedatos");
$resultado $mysqli->query("SELECT '¡Hola, querido usuario de MySQL!' AS _message FROM DUAL");
$fila $resultado->fetch_assoc();
echo 
htmlentities($fila['_message']);

// PDO
$pdo = new PDO('mysql:host=ejemplo.com;dbname=basedatos''usuario''contraseña');
$sentencia $pdo->query("SELECT 'Hola, querido usuario de MySQL!' AS _message FROM DUAL");
$fila $sentencia->fetch(PDO::FETCH_ASSOC);
echo 
htmlentities($fila['_message']);

// mysql
$c mysql_connect("ejemplo.com""usuario""contraseña");
mysql_select_db("basedatos");
$resultado mysql_query("SELECT 'Hola, querido usuario de MySQL!' AS _message FROM DUAL");
$fila mysql_fetch_assoc($resultado);
echo 
htmlentities($fila['_message']);
?>

API remendada

Se recomienda usar las extensiones mysqli o PDO_MySQL. No se recomienda usar la extensión mysql antigua para nuevos desarrollos, ya que ha sido declarada obsoleta a partir de PHP 5.5.0 y será eliminada en el futuro. Se proporciona una matriz detallada de comparación de características más abajo. El rendimiento global de las tres extensiones se considera aproximadamente el mismo. Aunque el rendimiento de la extensión aporta solamente una fracción del total del tiempo de ejecución de una consulta web de PHP. A menudo el impacto es tan bajo como 0.1%.

Comparación de características

  ext/mysqli PDO_MySQL ext/mysql
Versión de PHP donde se introdujo 5.0 5.1 2.0
Incluida con PHP 5.x
Estado de desarrollo Activo Activo Sólo mantenimiento
Ciclo de vida Activo Activo Obsoleto
Recomendada para nuevos proyectos No
Interfaz POO No
Interfaz procedimental No
La API soporta el no bloqueo, consultas asíncronas con mysqlnd No No
Conexiones persistentes
La API soporta conjunto de caracteres
La API soporta sentencias preparadas del lado del servidor No
La API soporta sentencias preparadas del lado del cliente No No
La API soporta procedimientos almacenados No
API soporta sentencias múltiples La mayoría No
La API soporta transacciones No
Las transacciones se pueden controlar con SQL
Soporta toda la funcionalidad de MySQL 5.1+ La mayoría No

Información general de los controladores de MySQL de PHP
PHP Manual