En este post te mostraré cómo realizar las 4 operaciones de bases de datos usando el lenguaje PHP con la extensión MySQLi (MySQL improved, mejorado) y obviamente el motor MySQL o MariaDB.

Al final verás cómo insertar, obtener, actualizar y eliminar con este ejemplo sencillo que además usa Bootstrap como framework de diseño. En otras palabras veremos cómo hacer una conexión PHP y MySQL con mysqli.

Por cierto, este tutorial también usa sentencias preparadas para evitar inyecciones SQL y así agregar una capa de seguridad (te recomiendo encarecidamente que leas ese post del enlace, pues en él explico el uso de bind_param).

Plantilla

He decidido separar el encabezado y pie del contenido, así se evita la duplicidad del código. En este caso definimos el encabezado:

Aquí en el encabezado importamos Bootstrap y definimos el inicio del body. Luego en el pie tenemos lo siguiente:

De este modo vamos a poder reutilizar estos dos elementos y poner el contenido real entre los mismos, incluyéndolos con include_once.

Nota: en este caso vamos a gestionar videojuegos, es decir, una tabla de videojuegos. La tabla necesita únicamente el nombre y la descripción.

Conexión con la base de datos

Recuerda crear una base de datos llamada videojuegos. Dentro de ella, importa el siguiente esquema:

En caso de que cambies algo recuerda modificar el archivo de conexión:

Este archivo que ves es el que será incluido en todos los demás archivos para interactuar con la base de datos.

Relacionado:  Autocompletado AJAX con PHP y MySQL

Formulario de registro

Formulario de registro para MySQLi y PHP – Insert

Comenzamos diseñando el formulario para registrar datos. Únicamente solicitamos el nombre y la descripción:

Fíjate en que el action del formulario está en registrar.php, es decir, todos los datos serán enviados a ese archivo.

Insertando registros

Ahora en registrar.php obtenemos los datos y hacemos el INSERT a la base de datos usando MySQLi y PHP:

Lo que hacemos es incluir el archivo de conexión, después declaramos las variables en las líneas 3 y 4. Más tarde preparamos y ejecutamos la sentencia para finalmente redireccionar a listar.php.

Mostrar registros

Mostrar datos en tabla usando MySQLi y PHP – Operación SELECT

Veamos la opción de hacer un SELECT a MySQL usando MySQLi. En este caso vamos a crear una tabla con PHP por cada registro que haya.

Lo primero que hacemos es obtener todos los registros como arreglo, así podemos recorrerlos y más adelante acceder a ellos con $valor["columna"]. Para obtener los registros como arreglo usamos fetch_all indicando la constante MYSQLI_ASSOC para devolverlos como un arreglo asociativo.

Después definimos la tabla y le agregamos filas por cada registro que encontremos.

También es aquí cuando definimos dos enlaces para editar y eliminar. A ambos les pasamos el id del videojuego a partir de la URL.

Formulario para editar

Formulario para Update en MySQL usando PHP y MySQLi

Ahora veamos el formulario que sirve para editar un registro. En este caso debemos obtener el valor de la base de datos haciendo un SELECT de nuevo, pues necesitamos rellenar el formulario con los datos ya existentes. El Id viene en la URL dentro de $_GET["id"].

Para obtener solo un registro hacemos una sentencia preparada con un WHERE, la ejecutamos y finalmente obtenemos un único registro (pues no necesitamos todos) usando fetch_assoc.

Además, necesitamos colocar un campo oculto que llevará el ID del videojuego que se edita, pues es necesario para hacer el WHERE de la consulta. En este caso usamos un input de tipo hidden.

Los datos se enviarán a actualizar.php. Fíjate en que el input oculto que mencioné está en la línea 20.

Relacionado:  Sumar y restar fechas con MySQL usando date_add y date_sub

Hacer update

Al recibir los datos hacemos una consulta preparada; en ella hacemos un UPDATE usando un WHERE para el id.

Como se puede notar, ahora bind_param recibe 3 argumentos que son el nuevo nombre, la nueva descripción y el id, en el orden que aparecen los signos de interrogación en la consulta.

De este modo hacemos un update a MySQL desde PHP usando la extensión MySQLi. Finalmente redireccionamos a listar.php.

Eliminar

Finalmente veamos el archivo que se encarga de eliminar un registro. En este caso debido a que es un ejemplo sencillo vamos a eliminar sin pedir confirmación leyendo un valor de la URL. Queda así:

Poniendo todo junto

El código completo actualizado lo encuentras en mi GitHub. Recuerda dejarle una estrella si te ha gustado.

También he grabado un vídeo que explica el código y muestra el uso del software:

Conclusión

Así es como termina este tutorial de conexión a MySQL con PHP usando MySQLi. Recuerda que esta extensión se creó porque todas las funciones de mysql (no la base de datos, sino las funciones de PHP) ya son obsoletas.

Ahora bien, yo te recomendaría usar PDO en lugar de MySQLi pues así puedes cambiar de base de datos sin problema y podrías usar otros métodos más interesantes.

Al final de todo es tu decisión, pero yo prefiero PDO en caso de que me preguntes. Como sea, te invito a leer más sobre PHP o MySQL.


Estoy disponible para trabajar en tu proyecto o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

Relacionado:  Angular, PHP y MySQL - CRUD

Si el post fue de tu agrado muestra tu apoyo compartiéndolo, suscribiéndote al blog, siguiéndome o realizando una donación.

Suscribir por correo

Ingresa tu correo y recibirás mis últimas entradas sobre programación, open source, bases de datos y todo lo relacionado con informática

Únete a otros 750 suscriptores


parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

2 Comments

Aplicaciones Informáticas · octubre 8, 2020 a las 1:01 am

Recomiendas algún framework en especial para el tratamiento de la BD? Hacerlo a pelo creo que es un poco tedioso y no he encontrado ninguno que me guste.

Un saludo.

    parzibyte · octubre 8, 2020 a las 8:29 am

    Hola. Un framework que me ha gustado mucho es Laravel.
    Saludos 🙂

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

A %d blogueros les gusta esto: