Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial
  • Lezione 39 di 67
  • livello intermedio
Indice lezioni

Generare file JSON da database

Come utilizzare le funzioni dell'estensione PDO di PHP e le funzioni PHP per JSON per recuperare i dati da un database e mostrarli in formato JSON.
Come utilizzare le funzioni dell'estensione PDO di PHP e le funzioni PHP per JSON per recuperare i dati da un database e mostrarli in formato JSON.
Link copiato negli appunti

In una precedente lezione abbiamo analizzato le funzioni a disposizione per gestire il formato JSON con PHP. Vediamo ora come possiamo utilizzare alcune di queste funzioni per recuperare dei dati da un database e trasformarli in JSON.

In questa lezione faremo uso dell'estensione PDO che ci consente di accedere al database ed effettuare query. Per approfondire l'argomento si può fare riferimento alla guida apposita.

Gli esempi di questo articolo utilizzano il linguaggio MySQL, PDO è però un layer di astrazione che consente di connetterci anche a database differenti.

La struttura dati

Prima di procedere creiamo una struttura dati e popoliamola con alcuni dati di prova:

CREATE TABLE user (
    id INT UNSIGNED NOT NULL AUTO_INCREMENT ,
    firstName VARCHAR(100) NOT NULL ,
    lastName VARCHAR(100) NOT NULL ,
    email VARCHAR(100) NOT NULL ,
    PRIMARY KEY ('id')
) ENGINE = InnoDB;
INSERT INTO user (id, firstName, lastName, email)
VALUES (NULL, 'Simone', 'D\'Amico', 'simone@email.it'),
       (NULL, 'Mario', 'Rossi', 'mario@email.it');

Connessione al database

Il prossimo step consisterà nel creare la connessione al database che ci permetterà di effettuare le query per recuperare i dati:

$user = 'root';
$password = 'root';
$db = 'test';
$host = 'localhost';
$port = 8889;
$conn = new PDO("mysql:host=$host; dbname=$db; port=$port", $user, $password);

Recuperare i dati e convertirli in JSON

Ora che abbiamo un accesso al database possiamo effettuare le nostre query e convertire il risultato in un array JSON popolati con gli utenti presenti nel database.

$result = [];
    $stmt = $conn->query("SELECT * FROM user");
    while($row = $stmt->fetch(PDO::FETCH_ASSOC)){
        $result[] = $row;
    }
    echo json_encode($result);

Il codice appena mostrato effettua la query al nostro database recuperando gli utenti; ciclando sui risultati creiamo un array che li contiene tutti. A questo punto grazie alla funzione json_encode() possiamo restituire l'array in formato JSON.

Il risultato che otterremo è il seguente:

[
    {
        id: "1",
        firstName: "Simone",
        lastName: "D'Amico",
        email: "simone@email.it"
    },
    {
        id: "2",
        firstName: "Mario",
        lastName: "Rossi",
        email: "mario@email.it"
    }
]

Ti consigliamo anche