PHP

Cómo conectar PHP con MySQL

como conectar php con mysql

Introducción

Este tutorial te será muy útil en caso de que estés comenzando a aprender sobre desarrollo de sitios web. Usando este tutorial, aprenderás a conectar PHP con MySQL. Esto es necesario si quieres modificar, ver, eliminar o administrar tus tablas creadas de cualquier otra manera.

Lo que necesitarás

Antes de comenzar con esta guía, necesitarás lo siguiente:

  • Acceso a tu panel de control de hosting

Paso 1 – Crear una base de datos MySQL

Este paso es necesario en caso de que aún no tengas una base de datos MySQL creada. En Hostinger, la base de datos MySQL se puede crear fácilmente en la sección de Bases de Datos MySQL.Menú de bases de datos mysql en el panel de Hostinger

Cuando estés en la sección de Bases de Datos MySQL, ingresa los datos requeridos y presiona el botón Crear.Crear base de datos MySQL

IMPORTANTE: Anota los detalles de la base de datos MySQL que acabas de crear. Los necesitarás en el siguiente paso.

Paso 2 – Escribir el código PHP para conectar con la base de datos MySQL

Nos conectaremos a una base de datos con nombre u309565199_name y esta base de datos nuestra tiene un usuario asociado u309565199_user. También debes tener una contraseña para la base de datos, en nuestro caso la contraseña será comprahosting.

Otra cosa que vale la pena mencionar es que debes tener un nombre de servidor (servername) o de host (hostname) correctos. En Hostinger, el nombre de host de MySQL se puede encontrar en la sección de Bases de Datos MySQL. En nuestro ejemplo, es mysql.hostinger.es.

En muchos casos, cuando se conecta a una base de datos localmente (el script que se conecta a una base de datos se carga en el servidor donde existe la base de datos), puedes usar localhost. Si eso no funciona, o si te estás conectando a una base de datos desde una ubicación remota (por ejemplo, tu computadora), debes usar la dirección IP del servidor. Para obtener más detalles, comunícate con tu proveedor de hosting para que te brinden la información correcta sobre qué usar para el nombre de host (hostname).

Ahora hay dos métodos para conectarse a una base de datos SQL con PHP: son MySQLi y PDO. Uno de los cambios más importantes es que ambos admiten “declaraciones preparadas”, que eliminan la posibilidad de ataques de inyección SQL al realizar cambios en la base de datos. Las funciones originales ‘mysql_’ están en desuso y no deben utilizarse ya que no son seguras y ya no se mantienen o desarrollan.

MySQLi significa MySQL Improved (mejorado) y agrega nuevas características específicamente a la interfaz de MySQL. PDO significa PHP Data Object (Objeto de datos PHP). La diferencia principal entre PDO y MySQLi es que PDO es compatible con varios tipos de bases de datos diferentes (MySQL, MS SQL, Postgre DB) en el mismo script, sin embargo, solo tienes que escribir funciones relacionadas con los datos una vez. PDO está ‘orientado a objetos’, la conexión a la base de datos se crea al crear un objeto variable. Ejemplo de creación de un nuevo objeto:

$my_Object = new OBJECT();

MySQLi

Aquí está el ejemplo básico de código PHP que se puede usar para establecer una conexión a una base de datos MySQL usando MySQLi:

<?php
$servername = "mysql.hostinger.es";
$database = "u309565199_name";
$username = "u309565199_user";
$password = "comprahosting";

// Create connection

$conn = mysqli_connect($servername, $username, $password, $database);

// Check connection

if (!$conn) {

    die("Connection failed: " . mysqli_connect_error());

}
echo "Connected successfully";
mysqli_close($conn);
?>

El método principal utilizado en este script es mysqli_connect(). Esta es una función interna de PHP, puedes leer más al respecto aquí.

Al comienzo de nuestro código, vemos pocas declaraciones de variables y valores asignados a esas variables. Por lo general, necesitamos cuatro variables para establecer una conexión adecuada: $servername, $database, $username y $password. En el código, hemos establecido los datos exactos de nuestra base de datos como valores para esas variables y más adelante, en la función mysqli_connect() usamos esas variables para pasar a la función.

El siguiente paso es la función mysqli_connect(), que intenta establecer una conexión a una base de datos con los detalles proporcionados y la siguiente parte del código se ejecuta en función del éxito de la función mysqli_connect(). Como puedes ver, hemos establecido que si la conexión no es exitosa, nos mostrará este mensaje:

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

Aquí se ejecuta una función die(), que básicamente termina nuestro script y nos da un mensaje que hemos establecido. Por lo tanto, esto mostrará de manera predeterminada que Falló la conexión (Connection failed): y un mensaje con el error exacto seguirá para ayudarnos a determinar el problema.

Si la conexión es exitosa, se ejecutará la siguiente parte del código:

echo "Connected successfully";

Esto simplemente imprimirá un mensaje de éxito en lugar del mensaje anterior, ya que tiene una instrucción IF que se activsa en función de una condición fallida.

La última parte del código es:

mysqli_close($conn);

Esto simplemente cerrará la conexión a una base de datos manualmente. Si no se especifica, la conexión se cerrará sola una vez que finalice el script. Puedes usar esta línea para cerrar la conexión antes del final del script.

Deberías poder ejecutar el código ahora accediendo al script a través de tu dominio.

PDO

Una conexión de base de datos PDO requiere que crees un nuevo ‘objeto PDO’ con un Nombre de origen de datos (DSNData Source Name), nombre de usuario y contraseña. El DSN define el tipo de base de datos, el nombre de la base de datos y cualquier otra información, si es necesario. El DSN puede ser una variable simple que luego se usa como parámetro al crear el objeto PDO real, como se muestra en el siguiente código.

PDO es compatible con varios tipos de bases de datos y el DSN es donde defines las conexiones alternativas, reemplazando la línea ‘mysql:’ con la sintaxis de la otra base de datos. En un script real, puedes permitirle al usuario elegir qué conexión utilizar y escribir código que elija la variable DSN requerida. Para este tutorial, solo estamos usando MySQL.

Al crear el objeto PDO que representa la conexión de la base de datos, puedes envolverlo en el código ‘try … catch …’. Esto significa que el script intentará conectarse usando el código provisto, y si hay algún problema, se ejecutará el código en la sección ‘catch’. Puedes usar el bloque catch para mostrar mensajes de error o ejecutar un código alternativo si falla la prueba. En este ejemplo, se muestra un mensaje de error simple para decirte qué parte de la información era incorrecta.

<?php
$servername = "mysql.hostinger.es";
$username = "u309565199_user";
$database = "u309565199_name";
$password = "comprahosting";

//  Create a new connection to the MySQL database using PDO
$conn = new mysqli($servername, $username, $password);

// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 
echo "Connected successfully";
?>

Paso 3 – Verificar la conectividad y resolver un problema común

Si el código de conexión PHP se ejecuta correctamente y la conexión se establece sin problemas, verás esto cuando visites el script en tu sitio web:Mensaje de conexión exitosa

Solución a problemas de errores de conexión PHP MySQL

Ahora, si la conexión no fue exitosa, verás algo diferente. Los errores son ligeramente diferentes para MySQLi y PDO.

Error de contraseña incorrecta

Por ejemplo, si cambiamos la contraseña en el código PHP un poco (pero no la cambiamos en la base de datos).

Error con MySQLi:Mensaje de conexión fallida

Error con PDO:pdo_fallo

En caso de que veas este mensaje, lo primero que debes hacer es verificar los detalles de la base de datos. Otro causa de este error podría ser que no tienes un usuario asignado a una base de datos. En el caso del panel de control de Hostinger, tu base de datos en la sección de Bases de Datos MySQL debería verse así:Listado de bases de datos mysql

O en el caso de cPanel, deberías ver tu sección de base de datos así:Sección de bases de datos en cPanel

No se puede conectar con el servidor MySQL

Con MySQLi:Mensaje de conexión fallida en MySQLi

No se puede conectar al servidor MySQL en el ‘servidor’ (110) significa que el script no obtuvo una respuesta de un servidor, eso sucedió porque hemos indicado el servidor en lugar del localhost como el nombre de servidor, y este nombre no es reconocido.

Con PDO:Mensaje de conexión fallida en PDO

  • [HY000] significa error general.
  • [2002] significa que no se puede conectar al servidor MySQL local. El resto de los mensajes proporciona más detalles, indicando que no se encontró el “host”.

Y, por supuesto, siempre es importante recordar una regla de oro para solucionar errores: verificar error_log.

Se puede encontrar en la misma carpeta donde se ejecuta el script. Por ejemplo, si estamos ejecutando un script en public_html, encontrarás el archivo error_log en la misma carpeta.

En su interior, verás todos los errores que posiblemente generó el script y que te ayudarán enormemente a solucionar el problema.

Conclusión

En este tutorial te proporcionamos los conocimientos básicos sobre bases de datos y cómo conectarse correctamente a la base de datos MySQL utilizando MySQLi y PHP Data Objects (PDO). Puedes utilizar el material aprendido en tus scripts y configuraciones más avanzados. Conectarse a una base de datos es el primer paso, y el más importante, al trabajar con éstas.

Lectura sugerida:

Agrega un Comentario

Dale clic aquí para dejar un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Una mejor manera de alojar tu sitio web

  • Soporte 24/7.
  • Migración gratis.
  • 57% De Descuento.

¡Comienza a ahorrar hoy mismo!

Alojamientos con todo incluido y nombre de dominio por

MX$45
00
/mes