Vaya al Contenido

PHP Obtener Datos - SuperHispano

Saltar menú
SuperHispano
+34 012 345 678
info@example.com
España 03:19:18 sábado 07/02/26
Saltar menú
Saltar menú
Saltar menú
Taller > PHP > Base de Datos MySQL

Obtener Datos de una Base de Datos MySQL con PHP


Después de insertar datos en una base de datos MySQL, el siguiente paso es obtener esos datos para mostrarlos o manipularlos en nuestras aplicaciones.
A continuación, veremos cómo recuperar datos de una tabla MySQL llamada products utilizando MySQLi y PDO con diferentes ejemplos prácticos.

La Sentencia SELECT


Para recuperar datos de una tabla en MySQL, utilizamos la sentencia SQL SELECT. En este ejemplo, usaremos la siguiente tabla:

Tabla: products
Columnas:
product_id: Entero que actúa como clave primaria.
product_name: Nombre del producto (cadena de caracteres).
price: Precio del producto (decimal).

La consulta básica para seleccionar todos los datos de la tabla sería:

SELECT product_id, product_name, price FROM products;

Obtener Datos Usando MySQLi Orientado a Objetos


El siguiente código muestra cómo recuperar datos utilizando MySQLi en su modo orientado a objetos.

<?php
$servidor = "localhost";
$usuario = "usuario";
$contraseña = "contraseña";
$base_datos = "tienda_db";

// Crear conexión
$conn = new mysqli($servidor, $usuario, $contraseña, $base_datos);

// Verificar conexión
if ($conn->connect_error) {
die("Error en la conexión: " . $conn->connect_error);
}

// SQL para seleccionar los datos
$sql = "SELECT product_id, product_name, price FROM products";
$resultado = $conn->query($sql);

// Verificar si hay resultados
if ($resultado->num_rows > 0) {
// Imprimir los datos
while($fila = $resultado->fetch_assoc()) {
echo "Product ID: " . $fila["product_id"] . "
";
echo "Product Name: " . $fila["product_name"] . "
";
echo "Price: $" . number_format($fila["price"], 2) . "<br>";
echo "-------------------------<br>";
}
} else {
echo "No se encontraron productos.";
}

// Liberar memoria y cerrar la conexión
$resultado->free();
$conn->close();
?>


Descripción:


Aquí hemos cambiado el ejemplo anterior para que recupere productos desde la tabla products. Se formatea el precio a dos decimales utilizando number_format(). Si no hay registros, se muestra un mensaje indicando que no se encontraron productos.

Obtener Datos Usando MySQLi Procedural


Este ejemplo utiliza MySQLi en su modo procedural para hacer la misma operación, pero con un enfoque diferente.

<?php
$servidor = "localhost";
$usuario = "usuario";
$contraseña = "contraseña";
$base_datos = "tienda_db";

// Crear conexión
$conn = mysqli_connect($servidor, $usuario, $contraseña, $base_datos);

// Verificar conexión
if (!$conn) {
die("Error en la conexión: " . mysqli_connect_error());
}

// SQL para seleccionar los datos
$sql = "SELECT product_id, product_name, price FROM products";
$resultado = mysqli_query($conn, $sql);

// Verificar si hay resultados
if (mysqli_num_rows($resultado) > 0) {
// Imprimir los datos
while($fila = mysqli_fetch_assoc($resultado)) {
echo "ID del Producto: " . $fila["product_id"] . "<br>";
echo "Nombre del Producto: " . $fila["product_name"] . "<br>";
echo "Precio: $" . number_format($fila["price"], 2) . "<br>";
echo "=========================<br>";
}
} else {
echo "No se encontraron productos.";
}

// Liberar memoria y cerrar la conexión
mysqli_free_result($resultado);
mysqli_close($conn);
?>


Descripción:


En este ejemplo, nuevamente accedemos a la tabla products, pero con MySQLi en modo procedural. El formato del precio sigue siendo el mismo, y los mensajes de salida son diferentes para darle variedad al enfoque.

Obtener Datos Usando PDO


Este ejemplo utiliza PDO para obtener los productos de la tabla products, con una estructura diferente.

<?php
$servidor = "localhost";
$usuario = "usuario";
$contraseña = "contraseña";
$base_datos = "tienda_db";

try {
// Crear conexión PDO
$conn = new PDO("mysql:host=$servidor;dbname=$base_datos", $usuario, $contraseña);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

// SQL para seleccionar los datos
$sql = "SELECT product_id, product_name, price FROM products";
$resultado = $conn->query($sql);

// Verificar si hay resultados
if ($resultado->rowCount() > 0) {
// Imprimir los datos
while($fila = $resultado->fetch(PDO::FETCH_ASSOC)) {
echo "ID Producto: " . $fila["product_id"] . "<br>";
echo "Producto: " . $fila["product_name"] . "<br>";
echo "Precio: $" . number_format($fila["price"], 2) . "<br>";
echo "-------------------------<br>";
}
} else {
echo "No se encontraron productos.";
}

} catch(PDOException $e) {
echo "Error: " . $e->getMessage();
}

// Cerrar la conexión
$conn = null;
?>


Descripción:
En este ejemplo, PDO es usado para conectarse a la base de datos y recuperar datos de la tabla products. Se utiliza fetch() con PDO::FETCH_ASSOC para devolver los resultados como arreglos asociativos. El código es similar a los ejemplos anteriores pero con un manejo de excepciones más detallado, típico de PDO.

Liberar Memoria


Es importante liberar los recursos utilizados por las consultas SELECT para optimizar el uso de memoria en el servidor.

// MySQLi orientado a objetos
$resultado->free();

// MySQLi procedural
mysqli_free_result($resultado);

// PDO
$conn = null; // PDO cierra la conexión al asignar null


Conclusión


Hemos visto cómo obtener datos de una tabla MySQL llamada products utilizando PHP con MySQLi y PDO.
Estos ejemplos muestran diferentes maneras de trabajar con las mismas funcionalidades, adaptándose a diferentes enfoques y estilos de programación.
Utilizando las mejores prácticas y liberando recursos, aseguramos un código más eficiente y optimizado.
+34 012 345 678
+34 012 345 678 (fax)
example@superhispano.com
Creado con WebSite X5
Regreso al contenido
Icono de la aplicación
SuperHispano Instale esta aplicación en su pantalla de inicio para una mejor experiencia
Toque Botón de instalación en iOS y luego "Agregar a su pantalla"