# Recuperare informazioni con PHP mysqli\_query da un database MySQL/MariaDB

Con PHP è possibile recuperare facilmente informazioni da un database MySQL o MariaDB. A tal fine, si stabilisce una connessione al database e successivamente si esegue una query SQL con PHP `mysqli_query()`, i cui risultati possono essere ulteriormente elaborati.

## Requisiti

Per recuperare informazioni da un database MySQL o MariaDB con [PHP](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/cose-php/), è necessario soddisfare alcuni requisiti di base. Innanzitutto, si necessita di un **ambiente PHP funzionante sul server**, spesso in combinazione con un server web come [Apache](https://www.ionos.it/digitalguide/server/know-how/cose-apache/) o [Nginx](https://www.ionos.it/digitalguide/server/configurazione/nginx-basi-installazione-e-configurazione/). Se non si dispone ancora di un ambiente, è necessario [installare PHP](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/installare-php/). Inoltre, deve essere installato [MySQL](https://www.ionos.it/digitalguide/server/know-how/cose-mysql/) o [MariaDB](https://www.ionos.it/digitalguide/server/know-how/cose-mariadb/). Sul lato PHP, è necessaria anche l’estensione MySQLi, che tuttavia è inclusa nella maggior parte delle installazioni standard.

## Recuperare informazioni da MySQL/MariaDB con PHP

In questo tutorial ti mostreremo come creare un semplice database MySQL/MariaDB con tabella e utente, e successivamente accedervi tramite PHP. Passo dopo passo realizzeremo un piccolo sito web di esempio che interroga le recensioni di ristoranti memorizzate direttamente dal database e le visualizza in una [tabella HTML](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/tabella-html/).

### Primo passaggio: creare il database

Nel primo passaggio è necessario creare il database. A tal fine, accedi al client MySQL/MariaDB dalla riga di comando:

```none
mysql -u root -p
```

Crea un database per le recensioni:

```none
CREATE DATABASE reviews;
```

Passa a questo database:

```none
USE reviews;
```

Per questo esempio, creeremo solo una tabella. Questa avrà tre campi:

- Campo ID: l’ID è la chiave della tabella e sarà impostato su auto-incremento.
- Nome di chi valuta: un campo di testo con una lunghezza fino a 100 caratteri.
- Valutazione stelle: una valutazione numerica da 1 a 5 TINYINT
- Controlla i dettagli: un campo di testo con un limite di circa 500 parole. VARCHAR(4000)

Crea la tabella con il comando [CREATE TABLE](https://www.ionos.it/digitalguide/hosting/tecniche-hosting/mariadb-create-table/):

```none
CREATE TABLE user_review (
id MEDIUMINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
reviewer_name VARCHAR(100),
star_rating TINYINT,
details VARCHAR(4000)
);
```

Ora aggiungiamo due recensioni di esempio alla tabella:

```none
INSERT INTO user_review (reviewer_name, star_rating, details) VALUES ('Alessandro', '5', 'La pizza è fantastica!');
INSERT INTO user_review (reviewer_name, star_rating, details) VALUES ('Enrico', '1', 'La pizza non sa di niente.');
```

### Secondo passaggio: creare un utente del database

Nel passaggio successivo, crea un utente per il database. Per motivi di sicurezza, è sempre consigliabile creare un utente univoco per ogni database, soprattutto se si accede al database da un sito web.

Il seguente comando crea un utente chiamato `review_site` con la password `JxSLRkdutW` e gli concede l’accesso al database appena creato:

```none
CREATE USER 'review_site'@'localhost' IDENTIFIED BY 'JxSLRkdutW';
GRANT SELECT ON reviews.* TO 'review_site'@'localhost';
```

### Terzo passaggio: creare uno script PHP

N.B. Il codice in questo tutorial è semplificato per mostrare esempi. Quando crei un sito web, ti consigliamo vivamente di seguire le pratiche di sicurezza comuni per garantire che i tuoi script PHP non limitino l’accesso al server.

Crea un file `showreviews.php` nel tuo spazio web e aprilo per modificarlo. Ad esempio, per creare il file nella directory `/var/www/html`, il comando con l’editor nano è:

```none
sudo nano /var/www/html/showreviews.php
```

Nel nostro esempio, il PHP sarà incorporato in HTML, quindi la pagina inizierà con le dichiarazioni HTML di base. Anche lo stile [CSS](https://www.ionos.it/digitalguide/siti-web/web-design/cose-css/) si trova nell’intestazione HTML:

```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>
```

Ogni script PHP deve iniziare con il tag di apertura PHP:

```HTML
<?php
```

Successivamente, aggiungi un blocco di connessione MySQL/MariaDB con la posizione del server (localhost), il nome del database, nonché il nome utente e la password del database.

```HTML
$hostname = "localhost";
$username = "review_site";
$password = "JxSLRkdutW";
$db = "reviews";
```

Successivamente, aggiungiamo una sezione per stabilire una connessione al database. Se la connessione fallisce, verrà visualizzato un messaggio di errore. Puoi stabilire una connessione tra il tuo script PHP e il tuo database in MySQL e MariaDB utilizzando `mysqli_connect()`. Questo comando accetta come parametri il nome host, il nome utente, la password e il nome del database, in modo che PHP sappia esattamente con quale database deve lavorare.

```HTML
$dbconnect=mysqli_connect($hostname,$username,$password,$db);
if (!$dbconnect) {
die("Database connection failed: " . mysqli_connect_error());
}
?>
```

### Quarto passaggio: inserire una tabella

Nel prossimo passaggio, aggiungi nel tuo script il codice HTML per iniziare la tabella che useremo per visualizzare i dati:

```HTML
<table>
<tr>
    <td>Nome del recensore</td>
     <td>Valutazione</td>
     <td>Dettagli</td>
</tr>
```

Successivamente, segue il codice PHP che interroga il database, scorre i risultati e visualizza ogni recensione in una propria riga della tabella:

```HTML
<?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
Ricorda di chiudere la tabella e il blocco HTML alla fine del documento:
```HTML
&lt;/table&gt;
&lt;/body&gt;
&lt;/html&gt;
```

</div>Per testare lo script, visita showreviews.php in un browser.

<figure class="rounded-4 w-auto mx-auto image position-relative overflow-hidden d-flex flex-column my-4 contain-style" style="max-width: 988px">[![Immagine: Visualizzazione di showreviews.php nel browser](https://www.ionos.it/digitalguide/fileadmin/_processed_/2/d/csm_mysql-mariadb-php-informazione_18c7c5e258.webp "Visualizzazione di showreviews.php nel browser")](https://www.ionos.it/digitalguide/fileadmin/DigitalGuide/Screenshots_2025/mysql-mariadb-php-informazione.jpg)<figcaption class="img-caption fs-sm text-start mx-2 d-block"> La tabella è ora visualizzata nel browser. </figcaption></figure>### Quinto passaggio: lo script completo

Lo script PHP completo è il seguente:

<div class="prism-container position-relative my-4" data-ctype="commonmark_content">```HTML
&lt;!doctype html&gt;
&lt;html&gt;
&lt;head&gt;
&lt;meta-charset="utf-8"&gt;
&lt;style&gt;
table {
border-collapse: collapse;
margin: 20px auto;
width: 80%;
}
th, td {
border: 1px solid black;
padding: 5px 10px;
text-align: left;
}
&lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;?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());
}
?&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;td&gt;Nome del recensore&lt;/td&gt;
&lt;td&gt;Valutazione&lt;/td&gt;
&lt;td&gt;Dettagli&lt;/td&gt;
&lt;/tr&gt;
&lt;?php
$query = mysqli_query($dbconnect, "SELECT * FROM user_review")
or die (mysqli_error($dbconnect));
while ($row = mysqli_fetch_array($query)) {
echo
"&lt;tr&gt;
&lt;td&gt;{$row['reviewer_name']}&lt;/td&gt;
&lt;td&gt;{$row['star_rating']}&lt;/td&gt;
&lt;td&gt;{$row['details']}&lt;/td&gt;
&lt;/tr&gt;\n";
}
?&gt;
&lt;/table&gt;
&lt;/body&gt;
&lt;/html&gt;
```


This is a markdown version of: [https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/recuperare-informazioni-da-un-database-mysql-mariadb-con-php/](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/recuperare-informazioni-da-un-database-mysql-mariadb-con-php/) for AI/LLM consumption.