Conexión PHP al servidor MySQL [Ejemplo completo]
Conexión PHP al servidor MySQL. Si deseamos almacenar o acceder a los datos dentro de una base de datos MySQL, primero debe conectarse al servidor de base de datos MySQL. Por lo tanto, PHP nos ofrece varias formas diferentes de conectarse al servidor MySQL:
- Extensiones MySQLi (MySQL mejorado)
- PDO (PHP Data Objects).
Formas de conectarse a MySQL a través de PHP
La conexión que está ganando popularidad por su seguridad y versatilidad es la extensión PDO porque es más portátil y admite más de doce motores de bases de datos diferentes.
La extensión MySQLi, como su nombre indica, solo admite la base de datos MySQL. Sin embargo, la extensión MySQLi proporciona una forma más fácil de conectarse y ejecutar consultas en un servidor de base de datos MySQL.
Por lo tanto, PDO como MySQLi ofrecen una API orientada a objetos, pero MySQLi también ofrece una API de procedimiento que es relativamente fácil de entender para los principiantes en programación.
Consejo: La extensión MySQLi de PHP proporciona beneficios de velocidad y características sobre la extensión PDO, por lo que podría ser una mejor opción para proyectos específicos de MySQL.
Conexión al servidor de base de datos MySQL
En PHP puedes hacer esto fácilmente usando la función mysqli_connect(). Toda la comunicación entre PHP y el servidor de base de datos MySQL se lleva a cabo a través de esta conexión.
Estas son las sintaxis básicas para conectarse a MySQL usando MySQLi y extensiones PDO:
Sintaxis: MySQLi, Forma procedimental
$link = mysqli_connect("hostname", "username", "password", "database");
Sintaxis: MySQLi, forma orientada a objetos
$mysqli = new mysqli("hostname", "username", "password", "database");
Sintaxis: forma de Objetos de Datos de PHP (PDO)
$pdo = new PDO("mysql:host=hostname;dbname=database", "username", "password");
Desarrollo en ejemplos de conexión a MySQL
A continuación, veremos las tres formas de poder conectarnos al motor de base de datos más usado en internet por ser de software gratuito (MySQL y/o MariaDB).
Forma Procedimental (MySQLi)
Esta interfaz es similar a la de la extensión antigua de mysql. En la mayoría de los casos, los nombres de funciones difieren únicamente por el prefijo. Algunas funciones de mysqli toman como primer argumento un gestor de conexión
<?php $link = mysqli_connect("localhost", "root", ""); // Check connection if($link === false){ die("ERROR: Could not connect. " . mysqli_connect_error()); } // Print host information echo "Connect Successfully. Host info: " . mysqli_get_host_info($link); // Close connection mysqli_close($link); ?>
Forma orientada a objetos (MySQLi)
Esta interfaz muestra las funciones agrupadas por su propósito, haciendo más fácil los comienzos. La sección de referencia proporciona ejemplos para ambas variantes de sintaxis.
No existen diferencias significativas de rendimiento entre las dos interfaces. Los usuarios puede basar su elección en sus preferencias personales.
<?php $mysqli = new mysqli("localhost", "root", "", "demo"); // Check connection if($mysqli === false){ die("ERROR: Could not connect. " . $mysqli->connect_error); } // Print host information echo "Connect Successfully. Host info: " . $mysqli->host_info; // Close connection $mysqli->close(); ?>
Forma de Objetos de Datos de PHP (PDO)
PDO significa (PHP Data Objects), Objetos de Datos de PHP, una extensión para acceder a bases de datos. PDO permite acceder a diferentes sistemas de bases de datos con un controlador específico (MySQL, SQLite, Oracle, SQL Server, entre otros motores de base de datos ) mediante el cual se conecta usando drivers especializados.
<?php try{ $pdo = new PDO("mysql:host=localhost;dbname=demo", "root", ""); // Set the PDO error mode to exception $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // Print host information echo "Connect Successfully. Host info: " . $pdo->getAttribute(constant("PDO::ATTR_CONNECTION_STATUS")); } catch(PDOException $e){ die("ERROR: Could not connect. " . $e->getMessage()); } // Close connection unset($pdo); ?>
- El parámetro hostname en la sintaxis anterior especifica el nombre de host (por ejemplo, localhost) o la dirección IP del servidor MySQL,
- Los parámetros de nombre de usuario y contraseña especifican las credenciales para acceder al servidor MySQL,
- El parámetro de base de datos, si se proporciona, especificará la base de datos MySQL predeterminada que se utilizará al realizar consultas.
Conclusión
En los ejemplos anteriores mostramos cómo conectarse al servidor de base de datos MySQL mediante MySQLi (tanto de procedimiento como de orientación a objetos) y la extensión PDO, de una manera sencilla.
Además, una vez realizada la conexión también podemos cerrarla según el tipo de conexión usado.
Si están empezando un nuevo proyecto la conexión recomendada es PDO porque posee la opción multi conexión y por ser más seguro si lo hemos programado correctamente.
Les dejare algo extra para optimizar la seguridad en PDO como conexión a MySQL.
Espero que estos ejemplos les ayuden a despejar algunas dudas sobre el proceso de conexión con MySQL