Tutorial de conexion de PHP a MySQL
Hola a todos!! Espero tengan un estupenda semana. En el tutorial de hoy veremos como conectar nuestra apicacion en PHP a nuestro base de datos en MySQL.
Para definir un poco de contexto, recordemos que PHP es un lenguaje de programacion que generalmente es usada para programar aplicaciones/APIs web, mientras que MySQL es un sistema gestor de bases de datos relacionales. PHP y MySQL han estado dentro de la industria desde los 90s, y gracias a que se han adaptado a los tiempos siguen tienendo alto impacto en el mercado.
Quiero mencionar que este articulo no es extensivo (mucho menos comprensivo), para aprender a programar en PHP o en SQL, estoy asumiendo que ustedes los lectores ya tienen los fundamentos para programar en el dichos lenguajes. Quiza en algun futuro, lejano o cercano, creare un articulo para entender PHP.
El Modelo Cliente-Servidor
Tomenos un momento para recordar el modelo cliente-servidor. Donde el Servidor atiende a todas las solicitudes de sus Clientes, basicamente un servidor es el proveedor de recursos y el cliente es un consumidor.
Asi pues tenemos nuestro Servidor web (Apache en este caso), que resuelve las solicitudes HTTP de los clientes. Estas solcitudes a su vez son procesadas por nuestro codigo en PHP. Si el sistema que se va a desarollar necesita de la persistencia de datos, generalmente usamos un sistema gestor de bases de datos, en esta articulo utilizamos MySQL Server. MySQL es un servidor de bases de datos que se encarga de procesar las transacciones en SQL de sus clientes, estas trasacciones son comunmente lo que se conoce como CRUD (por sus siglas en ingles Create, Read, Update and Delete; en español Crear, Leer, Actualizar y Borrar).
Entonces en este articulo vamos a crear un archivo llamado baseDeDatos.php y lo colocaremos dentro de nuestro directorio raiz para que pueda ser procesado por Apache. El directorio raiz se encuentra por predeterminado en los siguientes directorios.
-
Linux/Unix/MacOS:
/var/www/html -
Windows:
C:\xampp\htdocs
Si aun no tienes instalado PHP, MySQL y Apache en tu sistema de desarrollo, no podras continuar con este articulo. Aqui abajo tengo otros articulos donde detallo como instalar el software y mencionado.
- Tutorial para instalar PHP, Apache y MySQL en Linux :
https://blog.tottix.com/2023/11/tutorial-para-instalar-php-apache-y.html - Tutorial para instalar XAMPP en Windows:
https://blog.tottix.com/2021/10/tutorial-para-instalar-xampp-en-windows.html
Creando baseDeDatos.php
Una vez que confirmamos que tenemos todo nuestro sofware instalado, y creamos nuestro archivo baseDeDatos.php dentro del directorio raiz, entonces podemos insertar el siguiente codigo en PHP.
<?php echo "Hola Mundo!!"; ?>
El codigo anterior debera ser interprerado para imprimir la famoso linea "Hola Mundo!" escrita por Dennis Ritchie y Brian Kerninghan en su famoso libro "The C PRogramming Language" alla al final de la decada de los 70s.
Notemos que el codigo dentro de marcas "<?php" y "?>" sera ejecutado por el interprete de PHP. Ahora dejemos aun lado este codigo PHP para crear una base de datos y tabla de prueba en MySQL.
La Base de Datos
Para poder ingresar a MySQL es necesario utilizar algunos de los muchas herramientas que funcionan como clientes para conectarse la instancia. Alguna de las herramientas mas populares son MySQL Workbench, Toad for MySQL, y la interfaz de comandos para MySQL en la terminal de Linux. Tambien es necesario tener un usuario y contraseña para poder ingresar administrar la instancia de MySQL. Por predeterminado la combinacion de usuario y contraseña es "root" y "toor" en versiones antiguas de MySQL. En versiones mas modernas la opcion prederminado es acceder al cliente como root en Linux o Administrador en Windows y sin contraseña.
Una vez conectado al servidor MySQL podemos ejecutar comandos SQL. Crearemos nuestra base de datos de la siguiente manera.
CREATE DATABASE prueba;
Para crear nuestra tabla de prueba, ejecutamos el siguiente comando.
USE prueba; CREATE TABLE tabla1 ( columna1 VARCHAR(100) ); INSERT INT0 tabla1 (columna1) VALUES ('Hola Mundo!');
La primer linea del codigo anterior nos permite definir el contexto de la base de datos, el siguiente reglon nos permite create una tabla llamada tabla1 con una sola columna llamada columna1, en a ultima linea usamos el comando INSERT para agregar una linea a nuestra tabla.
Finalmente crearemos un usuario dentro MySQL para que sea utilizado por el servidor web, y le vamos otorgar suficientes privilegios para controlar dicha base de datos:
CREATE USER 'servidor_web'@'localhost' identified 'Contr@sena_Sup3r_Segura!!'; GRANT SELECT, INSERT, UPDATE, DELETE ON prueba.* TO 'servidor_web'@'localhost';
En la primara linea definimos el numbre de usuario llamado 'servicio_web', tambien estamos definiendo que dicho usuario solo se podra conectar desde localhost, es decir desde el mismo lugar de donde se encuentra la base de datos (si estas intentando conectarte a un servidor remote, es necesario reconfigurar MySQL para poder aceptar conexiones remotas; y al usuario se le agrega le nombre del ordenador de donde te vas conectar, o usamos el comodin '%' para definir que nos vamos a conectar de multiples lugares. Ejemplo: 'servicio_web'@'%'), tambien definimos la contraseña de usuario servicio_web la cual es Contr@sena_Sup3r_Segura!!
Armando el Rompecabezas
Ahora, si regresamos a nuestro archivo baseDeDatos.php, vamos a conectarnos a MySQL usuando PHP. Es necesario saber el nombre o direccion IP del servidor al que deseamos conectarnos, el nombre de la base de datos, el nombre del usuario y su contraseña.
Vamos a escribir el siguiente codigo
<?php $baseDeDatos = "prueba"; $usuario = "servidor_web"; $contrasena = "Contr@sena_Sup3r_Segura!!"; $servidor = "localhost" $conexion = new mysqli($servidor, $usuario, $contrasena, $baseDeDatos); if (!$conexion) { die("Error al conectarse a la base de datos :'("); } ?>
En el codigo anterior creamos 4 objetos para alojar las variablees necesarias para conectarnos a MySQL. Los valores son prueba como la base de datos que creamos anteriormente, usuario y contrasena los cuales creamos especialmente para este ejemplo anteriormente, finalmente el nombre de servidor MySQL, en esta caso usamos localhost dado que el servidor web Apache y el servidor de bases de datos MySQL estan dentro del mismo servidor, entonces la conexion comodamente seria mediante localhost. Finalmente validamos nuestra conexion PHP, si esta es nula entonces terminamos la secuencia mostrando el error de conexion.
> Finalmente nos hemos conectado a la base de datos, cualquier duda o sugerencia por favor dejar un comentario.
Comentarios
Publicar un comentario