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.
Índice de contenido
ToggleComprendiendo 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!