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.

Managed Database Services
Concentrati sul tuo progetto, noi pensiamo al resto
  • Partner IONOS Cloud
  • Soluzioni flessibili e su misura
  • Data center situati in Europa

Requisiti

Per recuperare informazioni da un database MySQL o MariaDB con 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 o Nginx. Se non si dispone ancora di un ambiente, è necessario installare PHP. Inoltre, deve essere installato MySQL o 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.

Primo passaggio: creare il database

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

mysql -u root -p

Crea un database per le recensioni:

CREATE DATABASE reviews;

Passa a questo database:

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:

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:

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:

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 è:

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 si trova nell’intestazione 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

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

<?php
HTML

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.

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

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.

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

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:

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

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

<?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;
HTML

Per testare lo script, visita showreviews.php in un browser.

Immagine: Visualizzazione di showreviews.php nel browser
La tabella è ora visualizzata nel browser.

Quinto passaggio: lo script completo

Lo script PHP completo è il seguente:

&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;
HTML
Hai trovato questo articolo utile?
Vai al menu principale