Cómo extraer información de MySQL/MariaDB con PHP mysqli_query
Con PHP puedes extraer fácilmente información de una base de datos MySQL o MariaDB. Para ello, primero debes establecer una conexión con la base de datos y después ejecutar una consulta SQL mediante la función mysqli_query() de PHP, cuyos resultados pueden procesarse y mostrarse en la página web.
- Arquitectura de primera gestionada por expertos
- Soluciones flexibles adaptadas a tus necesidades
- Seguridad máxima en centros de datos con certificación ISO
Requisitos
Para obtener información de una base de datos MySQL o MariaDB con PHP, debes cumplir algunos requisitos básicos. Primero, necesitas un entorno PHP funcional en el servidor, normalmente junto con un servidor web como Apache o Nginx. Si aún no dispones de él, primero debes instalar PHP. Además, asegúrate de tener MySQL o MariaDB instalados. Por último, PHP debe contar con la extensión MySQLi, que normalmente viene incluida en la mayoría de instalaciones estándar.
Obtener información de MySQL/MariaDB con PHP
En este tutorial te mostramos cómo crear una base de datos MySQL o MariaDB con su tabla y usuario, y cómo acceder a ella desde PHP. Paso a paso, aprenderás a construir una pequeña página web de ejemplo que consulta las valoraciones de restaurantes almacenadas en la base de datos y las muestra en una tabla HTML.
Paso 1: crear la base de datos
El primer paso consiste en crear la base de datos. Para ello, inicia sesión en el cliente de MySQL o MariaDB desde la línea de comandos:
mysql -u root -pCrea una base de datos para las reseñas:
CREATE DATABASE reviews;Cambia a esta base de datos:
USE reviews;Para este ejemplo, crearemos una sola tabla con los siguientes campos:
- ID: clave principal de la tabla, configurada como AUTO_INCREMENT
- Nombre del evaluador: campo de texto con una longitud máxima de 100 caracteres
- Calificación de estrellas: valor numérico del 1 al 5 (tipo TINYINT)
- Reseña: campo de texto con un límite aproximado de 500 palabras (tipo VARCHAR(4000))
Crea la tabla con el comando CREATE TABLE:
CREATE TABLE user_review (
id MEDIUMINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
reviewer_name VARCHAR(100),
star_rating TINYINT,
details VARCHAR(4000)
);Ahora añadimos dos reseñas de ejemplo a la tabla:
INSERT INTO user_review (reviewer_name, star_rating, details) VALUES ('Ben', '5', 'Love the calzone!');
INSERT INTO user_review (reviewer_name, star_rating, details) VALUES ('Leslie', '1', Calzones are the worst.');Paso 2: crear usuario de base de datos
En el siguiente paso, crea un usuario para la base de datos. Por razones de seguridad, siempre es mejor crear un usuario único para cada base de datos, especialmente si se accede desde una página web.
El siguiente comando crea un usuario llamado review_site con la contraseña JxSLRkdutW y le otorga acceso a la base de datos recién creada:
CREATE USER 'review_site'@'localhost' IDENTIFIED BY 'JxSLRkdutW';
GRANT SELECT ON reviews.* TO 'review_site'@'localhost';Paso 3: crear script PHP
El código de este tutorial se ha simplificado con fines ilustrativos. Al desarrollar una página web, te recomendamos seguir las prácticas de seguridad habituales para garantizar que tus scripts PHP no comprometan el acceso ni la seguridad del servidor.
Crea un archivo showreviews.php en tu espacio web y ábrelo para editar. Por ejemplo, para crear el archivo en el directorio /var/www/html, el comando con el editor nano es:
sudo nano /var/www/html/showreviews.phpEn nuestro ejemplo, el PHP estará incrustado en HTML, por lo que la página comenzará con las declaraciones básicas de HTML. El estilo CSS también se encuentra en el encabezado HTML:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<style>
table {
border-collapse: collapse;
margin: 20px auto;
width: 80%;
}
th, td {
border: 1px solid black;
padding: 5px 10px;
text-align: left;
}
</style>
</head>
<body>htmlCada script PHP debe comenzar con la etiqueta de apertura PHP:
<?phpphpA continuación, añade un bloque de conexión MySQL/MariaDB con la ubicación del servidor (localhost), el nombre de la base de datos, así como el nombre de usuario y la contraseña de la base de datos.
$hostname = "localhost";
$username = "review_site";
$password = "JxSLRkdutW";
$db = "reviews";phpDespués, añadimos una sección para establecer una conexión con la base de datos. Si la conexión falla, se mostrará un mensaje de error. Puedes establecer una conexión entre tu script PHP y tu base de datos MySQL o MariaDB con mysqli_connect(). Se pasan el nombre del host, el nombre de usuario, la contraseña y el nombre de la base de datos, de modo que PHP sepa exactamente con qué base de datos debe trabajar.
$dbconnect=mysqli_connect($hostname,$username,$password,$db);
if (!$dbconnect) {
die("Database connection failed: " . mysqli_connect_error());
}
?>phpPaso 4: insertar la tabla
En el siguiente paso, añade el siguiente código HTML al script para crear la tabla donde mostraremos los datos:
<table>
<tr>
<th>Reviewer Name</th>
<th>Stars</th>
<th>Details</th>
</tr>htmlA continuación, sigue el código PHP que consulta la base de datos, recorre los resultados y muestra cada reseña en su propia fila de la tabla:
<?php
$query = mysqli_query($dbconnect, "SELECT * FROM user_review")
or die (mysqli_error($dbconnect));
while ($row = mysqli_fetch_array($query)) {
echo "<tr>
<td>{$row['reviewer_name']}</td>
<td>{$row['star_rating']}</td>
<td>{$row['details']}</td>
</tr>\n";
}
?>phpRecuerda cerrar la tabla y el bloque HTML al final del documento:
</table>
</body>
</html>htmlPara probar el script, abre showreviews.php en un navegador.

Paso 5: el script completo
El script PHP completo es:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<style>
table {
border-collapse: collapse;
margin: 20px auto;
width: 80%;
}
th, td {
border: 1px solid black;
padding: 5px 10px;
text-align: left;
}
</style>
</head>
<body>
<?php
$hostname = "localhost";
$username = "review_site";
$password = "JxSLRkdutW";
$db = "reviews";
$dbconnect=mysqli_connect($hostname,$username,$password,$db);
if (!$dbconnect) {
die("Database connection failed: " . mysqli_connect_error());
}
?>
<table>
<tr>
<th>Reviewer Name</th>
<th>Stars</th>
<th>Details</th>
</tr>
<?php
$query = mysqli_query($dbconnect, "SELECT * FROM user_review")
or die (mysqli_error($dbconnect));
while ($row = mysqli_fetch_array($query)) {
echo "<tr>
<td>{$row['reviewer_name']}</td>
<td>{$row['star_rating']}</td>
<td>{$row['details']}</td>
</tr>\n";
}
mysqli_close($dbconnect);
?>
</table>
</body>
</html>phpCon esto, tu script PHP ya muestra los datos almacenados en MySQL/MariaDB directamente en una tabla HTML.

