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.

Bases de datos gestionadas
Bases de datos seguras y fáciles de usar
  • 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 -p

Crea 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

Nota

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.php

En 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>
html

Cada script PHP debe comenzar con la etiqueta de apertura PHP:

<?php
php

A 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";
php

Despué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()); 
} 
?>
php

Paso 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>
html

A 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";
} 
?>
php

Recuerda cerrar la tabla y el bloque HTML al final del documento:

</table> 
</body> 
</html>
html

Para probar el script, abre showreviews.php en un navegador.

Imagen: Visualización de showreviews.php en el navegador
La tabla ahora se muestra en el 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>
php

Con esto, tu script PHP ya muestra los datos almacenados en MySQL/MariaDB directamente en una tabla HTML.

¿Le ha resultado útil este artículo?
Ir al menú principal