Dominando mysqli_query: Interactúa con MySQL en PHP

PHP y MySQL forman una dupla poderosa para el desarrollo web, proporcionando una plataforma robusta para la gestión de bases de datos. El uso de la función mysqli_query en PHP permite operaciones sobre bases de datos MySQL, desde consultas simples hasta transacciones más complejas.

Comprendiendo la función mysqli_query

Antes de sumergirnos en ejemplos prácticos, entendamos qué es y cómo funciona mysqli_query. Esta función de PHP es esencial para enviar consultas a nuestra base de datos MySQL. La estructura básica es la siguiente:

mysqli_query($conexion, $consulta);

Donde $conexion es un objeto que representa una conexión abierta a una base de datos MySQL, y $consulta es el string que contiene la query SQL a ejecutar.

Conectándose a la Base de Datos

Para realizar cualquier operación en la base de datos, primeramente necesitamos establecer una conexión. Supongamos que contamos con las siguientes credenciales de base de datos:

  • Host: localhost
  • Usuario: root
  • Contraseña: password
  • Base de datos: my_database

El siguiente fragmento de código muestra cómo iniciar una conexión:

$conexion = mysqli_connect("localhost", "root", "password", "my_database");

if (!$conexion) {
    die("La conexión ha fallado: " . mysqli_connect_error());
}

echo "Conexión exitosa";

Asegúrate de seleccionar tu base de datos de manera correcta y manejar los potenciales errores de conexión.

Realizando una Consulta Simple

Con la conexión ya establecida, veamos cómo realizar una consulta simple para obtener datos de una tabla llamada users:

$consulta = "SELECT * FROM users";
$resultado = mysqli_query($conexion, $consulta);

if (!$resultado) {
    die("Error en la consulta: " . mysqli_error($conexion));
}

while ($fila = mysqli_fetch_assoc($resultado)) {
    echo "Nombre: " . $fila["nombre"] . " - Email: " . $fila["email"] . "<br>";
}

mysqli_free_result($resultado);

En el bucle while, mysqli_fetch_assoc obtiene cada fila del resultado como un array asociativo y lo almacenamos en $fila. Esto nos permite acceder a cada columna de la fila por su nombre.

No olvides liberar el resultado con mysqli_free_result para liberar la memoria asociada al resultado de la consulta.

Insertando Datos en la Base de Datos

A continuación, veamos cómo podríamos insertar un nuevo usuario dentro de nuestra tabla users:

$nombre = "Juan Pérez";
$email = "[email protected]";

$consulta = "INSERT INTO users (nombre, email) VALUES ('$nombre', '$email')";
if (mysqli_query($conexion, $consulta)) {
    echo "Nuevo registro creado con éxito";
} else {
    echo "Error: " . $consulta . "<br>" . mysqli_error($conexion);
}

Este fragmento de código realiza una inserción en la base de datos. Recuerda siempre validar y desinfectar las entradas para evitar ataques de inyección SQL.

Actualizando Registros Existentes

Si deseamos actualizar la información de un usuario específico, utilizamos la instrucción UPDATE. Por ejemplo, para cambiar el email de un usuario:

$nuevoEmail = "[email protected]";
$idUsuario = 3;

$consulta = "UPDATE users SET email = '$nuevoEmail' WHERE id = $idUsuario";
if (mysqli_query($conexion, $consulta)) {
    echo "Registro actualizado con éxito";
} else {
    echo "Error al actualizar el registro: " . mysqli_error($conexion);
}

Ten en cuenta que debes especificar un criterio de búsqueda en el WHERE para no actualizar más registros de los deseados.

Eliminando Registros de la Base de Datos

Si deseas eliminar un registro, lo harías de la siguiente manera:

$idUsuario = 4;

$consulta = "DELETE FROM users WHERE id = $idUsuario";
if (mysqli_query($conexion, $consulta)) {
    echo "Registro eliminado con éxito";
} else {
    echo "Error al eliminar el registro: " . mysqli_error($conexion);
}

Como con la actualización, es crucial asegurarse de especificar adecuadamente el WHERE para evitar eliminar más datos de los pretendidos.

Transacciones con mysqli_query

Para llevar a cabo operaciones que involucren múltiples pasos y que requieran que se hagan todas o ninguna, como una transacción bancaria, utilizamos transacciones. Así es como podrías hacerlo con mysqli_query:

mysqli_begin_transaction($conexion);

try {
    mysqli_query($conexion, "UPDATE accounts SET balance = balance - 100 WHERE id = 1");
    mysqli_query($conexion, "UPDATE accounts SET balance = balance + 100 WHERE id = 2");

    mysqli_commit($conexion);
    echo "Transacción realizada con éxito";
} catch (Exception $e) {
    mysqli_rollback($conexion);
    echo "Se ha producido un error. Transacción revertida";
}

En este caso, estamos simulando una transferencia de fondos de una cuenta a otra. Si algo va mal, el catch captura la excepción y todas las operaciones se revierten para mantener la integridad de los datos.

Conclusión

El uso de mysqli_query es indispensable en la programación con PHP y MySQL. Desde tareas simples hasta las más complejas, esta función es crucial para la interacción directa con la base de datos. Al dominar esta marca de las operaciones CRUD (Create, Read, Update, Delete), te conviertes en un desarrollador más competente y capaz de crear aplicaciones web dinámicas y seguras.

No te pierdas nuestros artículos sobre desarrollo y tecnología, visita mi blog. Y si tienes alguna consulta o necesitas asistencia, no dudes en contactar a través de mi página de contacto. ¡Sigue codificando y aprendiendo cada día más!

Facebook
Twitter
Email
Print

Deja una respuesta

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

es_ESSpanish