Para empezar, hacer una consulta, en general, está vinculado a solicitar el parecer o la instrucción de otra persona. Quien consulta espera obtener información de utilidad para satisfacer sus necesidades o conseguir sus objetivos. 




Como tal las consultas se pueden encontrar en diversos lugares, y de diversos tipos. Pero vamos a abordar mas en el ámbito informático y SQL.

Las consultas en el ámbito informático

Una consulta sirve para extraer información de una base de datos. También permite manipular datos como: agregar, eliminar y cambiar. Por lo que podemos definir que una consulta es aquella solicitud que se le da a una Base de datos (BDD) para extraer o manipular datos.


¿Qué es una base de datos?

Una base de datos es una recopilación organizada de información o datos estructurados, que normalmente se almacena de forma electrónica en un sistema informático. Normalmente, una base de datos está controlada por un sistema de gestión de bases de datos (DBMS). En conjunto, los datos y el DBMS, junto con las aplicaciones asociadas a ellos, reciben el nombre de sistema de bases de datos, abreviado normalmente a simplemente base de datos.


¿Cómo hacer una consulta?

Para ello necesitamos el sistema en si, de ellos utilizaremos MySQL , con este haremos la consulta. Pero primero tenemos que una base de datos y una tabla donde tengan guardado los datos.




Luego hecho el proceso, toca conectarnos a la base de datos, en este caso estamos utilizando PHP (un lenguaje de programación​ del lado del servidor y de uso general que se adapta especialmente al desarrollo web).


Consultas con método MySQL y PDO

  • Método MySQLi:

     Es la manera directa de hacer consultas a la base de datos.


"<?php
$servername = "tu_servidor";
$username = "tu_usuario";
$password = "tu_contraseña";
$dbname = "tu_base_de_datos";
// Crear conexión
$conn = new mysqli($servername, $username, $password, $dbname);
// Verificar la conexión
if ($conn->connect_error) {
    die("Conexión fallida: " . $conn->connect_error);
}
// Ejemplo de consulta (no segura)
$username = $_POST['nombre_usuario'];
$password = $_POST['contrasena'];
$sql = "SELECT * FROM usuarios WHERE nombre_usuario='$username' AND contrasena='$password'";
$result = $conn->query($sql);
// Procesar resultados...
?>"


En una explicación rápida del código, este seria el método SQLI. Lo que esta pasando aquí es que estamos consultando a la base de datos si existe dicho usuario el cual extrajimos de un formulario en HTML.


  • Método PDO:

PHP Data Objects es una extensión que provee una capa de abstracción de acceso a datos para PHP 5, con lo cual se consigue hacer uso de las mismas funciones para hacer consultas y obtener datos de distintos manejadores de bases de datos.

 

    Un ejemplo:

"<?php
$servername = "tu_servidor";
$username = "tu_usuario";
$password = "tu_contraseña";
$dbname = "tu_base_de_datos";
try {
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    // Establecer el modo de error PDO a excepción
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    // Ejemplo de consulta segura
    $username = $_POST['nombre_usuario'];
    $password = $_POST['contrasena'];
    $stmt = $conn->prepare("SELECT * FROM usuarios WHERE nombre_usuario=:username AND contrasena=:password");
    $stmt->bindParam(':username', $username);
    $stmt->bindParam(':password', $password);
    $stmt->execute();
    // Procesar resultados...
} catch(PDOException $e) {
    echo "Error: " . $e->getMessage();
}
// Cerrar conexión
$conn = null;
?>"


Almacenamiento de datos

  • Método MySQLi:

"<?php
$mysqli = new mysqli("nombre_del_servidor", "nombre_de_usuario", "contraseña", "nombre_de_la_base_de_datos");
// Verificar la conexión
if ($mysqli->connect_error) {
    die("Conexión fallida: " . $mysqli->connect_error);
}
// Datos a insertar
$nombre = "Ejemplo";
$edad = 25;
// Consulta INSERT utilizando marcadores de posición (?)
$consulta = $mysqli->prepare("INSERT INTO tabla (nombre, edad) VALUES (?, ?)");
$consulta->bind_param("si", $nombre, $edad);
// Ejecutar la consulta
$consulta->execute();
echo "Datos insertados con éxito.";
// Cerrar conexión y liberar recursos
$consulta->close();
$mysqli->close();
?>"


  • Método PDO:

"<?php

try {
    $pdo = new PDO("mysql:host=nombre_del_servidor;dbname=nombre_de_la_base_de_datos", "nombre_de_usuario", "contraseña");
    // Datos a insertar
    $nombre = "Ejemplo";
    $edad = 25;
    // Consulta INSERT utilizando marcadores de posición
    $consulta = $pdo->prepare("INSERT INTO tabla (nombre, edad) VALUES (:nombre, :edad)");
    $consulta->bindParam(':nombre', $nombre);
    $consulta->bindParam(':edad', $edad);
    // Ejecutar la consulta
    $consulta->execute();
    echo "Datos insertados con éxito.";
} catch (PDOException $e) {
    echo "Error: " . $e->getMessage();
}
?>"
 


Mostrar los resultados de una búsqueda en la pagina web

  • Método MySQLi:

"<?php
$mysqli = new mysqli("nombre_del_servidor", "nombre_de_usuario", "contraseña", "nombre_de_la_base_de_datos");
// Verificar la conexión
if ($mysqli->connect_error) {
    die("Conexión fallida: " . $mysqli->connect_error);
}
// Obtener término de búsqueda desde el formulario (supongamos que se envía mediante POST)
$busqueda = isset($_POST['busqueda']) ? $_POST['busqueda'] : '';
// Consulta SELECT con búsqueda
$consulta = $mysqli->prepare("SELECT * FROM tabla WHERE columna LIKE ?");
$busqueda = '%' . $busqueda . '%';
$consulta->bind_param("s", $busqueda);
$consulta->execute();
// Obtener resultados
$resultado = $consulta->get_result();
// Mostrar resultados en la página
while ($fila = $resultado->fetch_assoc()) {
    echo "Nombre: " . $fila['nombre'] . "<br>";
    echo "Edad: " . $fila['edad'] . "<br>";
    echo "<hr>";
}
// Cerrar conexión y liberar recursos
$consulta->close();
$mysqli->close();
?>"


  • Método PDO:

"<?php
try {
    $pdo = new PDO("mysql:host=nombre_del_servidor;dbname=nombre_de_la_base_de_datos", "nombre_de_usuario", "contraseña");
    // Obtener término de búsqueda desde el formulario (supongamos que se envía mediante POST)
    $busqueda = isset($_POST['busqueda']) ? $_POST['busqueda'] : '';
    // Consulta SELECT con búsqueda
    $consulta = $pdo->prepare("SELECT * FROM tabla WHERE columna LIKE :busqueda");
    $consulta->bindValue(':busqueda', '%' . $busqueda . '%', PDO::PARAM_STR);
    $consulta->execute();
    // Obtener resultados
    $resultados = $consulta->fetchAll(PDO::FETCH_ASSOC);
    // Mostrar resultados en la página
    foreach ($resultados as $fila) {
        echo "Nombre: " . $fila['nombre'] . "<br>";
        echo "Edad: " . $fila['edad'] . "<br>";
        echo "<hr>";
    }
} catch (PDOException $e) {
    echo "Error: " . $e->getMessage();
}
?>"

En general, la elección entre PDO y MySQLi depende de las necesidades específicas del proyecto y de las preferencias del desarrollador. PDO puede ser preferido por su flexibilidad y capacidad para trabajar con diferentes bases de datos, mientras que MySQLi puede ser más adecuado para proyectos específicos de MySQL con su soporte más específico y funciones adicionales.