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

Elegir una API

PHP ofrece tres APIs diferentes para conectarse a MySQL. Abajo se muestran las APIs proporcionadas por las extensiones 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 Sí Sí Sí
Estado de desarrollo Activo Activo Sólo mantenimiento
Ciclo de vida Activo Activo Obsoleto
Recomendada para nuevos proyectos Sí Sí No
Interfaz POO Sí Sí No
Interfaz procedimental Sí No Sí
La API soporta el no bloqueo, consultas asíncronas con mysqlnd Sí No No
Conexiones persistentes Sí Sí Sí
La API soporta conjunto de caracteres Sí Sí Sí
La API soporta sentencias preparadas del lado del servidor Sí Sí No
La API soporta sentencias preparadas del lado del cliente No Sí No
La API soporta procedimientos almacenados Sí Sí No
API soporta sentencias múltiples Sí La mayoría No
La API soporta transacciones Sí Sí No
Las transacciones se pueden controlar con SQL Sí Sí Sí
Soporta toda la funcionalidad de MySQL 5.1+ Sí La mayoría No

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