Este procedimiento resulta indispensable en situaciones donde no se disponga aún de una base de datos MySQL constituida. En el caso de los usuarios que hagan uso de los servicios de Hostinger, se les brinda la posibilidad de generar una nueva base de datos mediante el hPanel de Hostinger, siguiendo un proceso de ejecución sumamente sencillo:
Localice el apartado correspondiente a "Bases de datos MySQL" en la sección designada para las bases de datos. Cumplimente los campos requeridos en su totalidad y proceda a seleccionar la opción "Crear".
Es importante tener presente que al establecer una nueva base de datos, esta se encontrará en estado vacío, y será necesario proporcionar todos los datos necesarios antes de poder llevar a cabo cualquier tipo de manipulación sobre los mismos.
Dos formas en que un script PHP puede conectarse a MySQL:
Existen dos enfoques para establecer una conexión entre PHP y una base de datos MySQL: MySQLi y PDO.
MySQLi es la abreviatura de MySQL Improved. Se trata de una extensión exclusiva de MySQL que introduce nuevas funcionalidades a la interfaz de una base de datos MySQL. MySQLi opera tanto en un paradigma procedimental como en uno orientado a objetos, siendo este último atributo una herencia de versiones previas de MySQL.
El enfoque original de MySQL aborda las tareas mediante procedimientos lineales y secuenciales, lo que puede complicar la tarea de modificación, dado que los ajustes deben realizarse en el código desde su inicio. En contraste, MySQLi conceptualiza los datos como un conjunto de objetos intercambiables con funciones asociadas, lo que brinda a los usuarios la capacidad de incorporar o eliminar datos con facilidad.
Por otro lado, PDO son las siglas de PHP Data Object (Objeto de Datos en PHP). A diferencia de MySQLi, PDO se concentra exclusivamente en el paradigma orientado a objetos y es compatible con diversos tipos de bases de datos que pueden ser utilizadas con PHP, como MySQL, MSSQL, Informix y PostgreSQL.
¡Importante! Las funciones originales de mysql_ están en desuso y no deben usarse porque no son seguras y ya no cuentan con mantenimiento ni desarrollo.
Una de las funcionalidades de mayor relevancia que ambas alternativas ofrecen es la implementación de declaraciones preparadas. Estas agilizan de manera significativa el tiempo que MySQL necesita para ejecutar consultas idénticas en múltiples ocasiones. Asimismo, su empleo resulta fundamental para mitigar los riesgos de ataques de inyección SQL al efectuar modificaciones en la base de datos.
Independientemente del método que se seleccione, resulta imperativo disponer de la información precisa para efectuar la conexión con la base de datos MySQL previamente creada. En este punto, los detalles relativos a la base de datos MySQL, previamente almacenados, adquieren gran utilidad.
De igual manera, es necesario contar con el nombre de servidor o de host correcto para la configuración. En el caso de Hostinger, se utiliza "localhost" como nombre de host para el servidor MySQL. En términos generales, esta es la denominación que conviene emplear si el script PHP se aloja en el mismo servidor que la base de datos.
En contraposición, si la intención es establecer conexión con la base de datos desde una ubicación remota, como podría ser el caso de tu equipo personal, será necesario emplear la dirección IP del servidor MySQL. En busca de obtener información detallada al respecto, se recomienda contactar al proveedor de servicios de alojamiento, quienes podrán suministrar los datos pertinentes para determinar qué denominación de host resulta adecuada.
Uso de MySQLi para conectar un script PHP a MySQL:
Siga estas instrucciones para utilizar MySQLi y conectar un script en PHP a MySQL:
Explicación del código MySQLi:
El eje central de este guion es el método mysqli_connect(). Esta función interna de PHP tiene como propósito establecer un nuevo enlace con un servidor MySQL.
Al inicio del código, se observa un conjunto de declaraciones de variables y sus respectivos valores. Usualmente, se requieren cuatro variables para instaurar una conexión apropiada: $servername, $database, $username y $password. En este código, los detalles específicos de la base de datos se asignan como valores a estas variables, de modo que puedan ser transmitidas a la función.
Si la conexión no logra efectuarse con éxito, se activa la función die(). Esta acción esencialmente finaliza el guion y despliega el mensaje de error de conexión que se ha establecido. Por defecto, el mensaje de error de conexión de MySQL contendrá "Connection failed", seguido de una descripción precisa del problema que ha surgido.
En contraste, si la conexión con MySQL se realiza exitosamente, el código imprimirá "Connected successfully" (Conexión establecida con éxito).
La última sección del código, mysqli_close, proporciona una manera de cerrar la conexión a la base de datos manualmente. En ausencia de esta especificación, las conexiones MySQL se cerrarán automáticamente una vez que el guion haya finalizado su ejecución.
Utilizar PDO para conectar un script PHP a MySQL:
El otro enfoque que puedes emplear para conectar un script PHP con MySQL es a través de PDO. Aunque comparte similitudes con el método previo, presenta una pequeña variación:
Explicación del código utilizando PDO:
Para establecer una conexión a la base de datos mediante PDO, es necesario crear una nueva instancia de la clase PDO, proporcionando un Nombre de Origen de Datos (DSN, por sus siglas en inglés), 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 pertinente. Estos son los valores que hemos declarado en el archivo "dbconfig.php" y que son referenciados posteriormente mediante la línea "require_once" en el archivo "databaseconnect.php".
Dentro de "databaseconnect.php", encontrarás una estructura "try...catch". Esto implica que el guion intentará (try) establecer una conexión con MySQL utilizando el código proporcionado en el bloque "try". En caso de surgir un problema, se activará el código contenido en el bloque "catch". El bloque "catch" puede ser empleado para mostrar mensajes de error de conexión o ejecutar un conjunto alternativo de instrucciones en caso de que falle la sección "try".
Si la conexión se efectúa de manera exitosa, se imprimirá el mensaje "Connected to $dbname at $host successfully" (Conexión a $dbname en $host establecida exitosamente). Sin embargo, si el intento de conexión resulta infructuoso, el bloque "catch" mostrará un mensaje de error conciso y concluirá la ejecución del guion.
Verificación de conectividad y resolución de errores comunes:
Para confirmar si la conexión ha sido establecida con éxito, accede a tu dominio de la siguiente manera: "tudominio/databaseconnect.php". Si has asignado un nombre diferente al archivo PHP, asegúrate de ajustar la dirección previamente mencionada de acuerdo a dicho nombre.
Si todo funciona correctamente, visualizarás el mensaje "Connected successfully" o variantes de este mensaje.
Sin embargo, si la conexión no se establece con éxito, experimentarás resultados diferentes. Los errores varían ligeramente entre MySQLi y PDO.
Error de Contraseña Incorrecta: Este error surge cuando modificamos la contraseña u otras credenciales en el código PHP, pero no actualizamos estos cambios en la base de datos real.
Si observas un mensaje como "Access denied" o "Could not connect to database", acompañado de "(using password: YES)" al final, lo primero que debes hacer es verificar los detalles de la base de datos. Podría haber un error tipográfico o alguna información faltante.
Incapacidad de Conexión con el Servidor MySQL: Si obtienes el mensaje "Can’t connect to MySQL server on 'server' (110)" en MySQLi, indica que el guion no ha recibido una respuesta del servidor. Esto ocurre cuando hemos configurado "server" en lugar de "localhost" como $servername, y el nombre no es reconocido.
En el caso de PDO, el mensaje de error se presentará como "Connection failed: SQLSTATE[Hy000] [2002]", seguido de más detalles que indican la falta de reconocimiento del host de MySQL. No obstante, la solución para este problema es similar a la anterior.
Por supuesto, siempre es recomendable recordar una regla fundamental para solucionar errores: revisar el registro de errores de tu sitio.
Este registro se encuentra en la misma carpeta donde el script es ejecutado. Por ejemplo, si el script está siendo ejecutado en la carpeta public_html, encontrarás el registro "error_log" en esa misma carpeta.