Connessione a SQLite con PHP

Mattepuffo's logo
Connessione a SQLite con PHP

Connessione a SQLite con PHP

Qualche giorno fa abbiamo visto come connetterci a un db SQLite con Python.

Oggi vediamo la stessa con PHP.

Anche qua, se l'applicazione non è grande, potrebbe non servire un db come MySQL, e quindi potremmo usare un semplice SQLite e semplificarci un pò la vita.

Anche per PHP non c'è bisgno di nessun componente aggiuntivo; ha già tutte le funzioni per connessione e quant'altro.

Ma noi useremo anche PDO, e questo perchè così facendo, possiamo portarci dietro già le nostre funzioni!

Inoltre su Aruba sono stato costretto a farlo, in quanto le funzioni sqlite3 sono disabilitate per default.

In questo caso specifico, poi, vedremo come codificare il tutto in JSON.

Nel mio caso questo è servito per esporre i dati a una app Android usando lo stesso db di una app dekstop scritta in Java, e una web app scritta in PHP.

Così facendo ho un unico piccolo db per tutto!

Ecco qua un esempio:

$db = new PDO("sqlite:films.sqlite");

$q = 'SELECT * FROM film ORDER BY title';
$prepare = $db->prepare($q);
$prepare->execute();
$res = $prepare->fetchAll();
$arr = array();
foreach ($res as $r) {
    $arr[] = array(
        "id" => $r['id'],
        "title" => $r['title'],
        "released" => $r['released'],
        "genre" => $r['genre'],
        "director" => $r['director'],
        "writer" => $r['writer'],
        "actors" => $r['actors'],
        "plot" => $r['plot'],
        "poster" => $r['poster'],
        "runtime" => $r['runtime'],
        "imdb_id" => $r['imdb_id']
    );
}
echo json_encode($arr);

Al costruttore di PDO indichiamo il driver da usare (sqlite) e il percorso del file (che deve risiedere sul server ovviamente).

Poi usiamo le stesse identiche funzioni che useremmo per MySQL.

Mi sembra abbastanza easy!

Ciao!!


Condividi

6 Commenti

  • Francesco

    ho diverse pagine dove avevo scritto il nome del database. Adesso vorrei rinominarlo, come faccio per evitare di fare questa operazione in tutte le pagine? Posso utilizzare un require("db.inc"); dove all'interno scriverò: $sqlitedb = 'nome_nuovo_db'; grazie

    26/06/2018
  • Diego

    Si\' sono uno \"smemorato\" , nell\'aprire il ticket ho trovato un vecchio ticket del 2013 in cui mi avevano gia\' risposto che il servizio Hosting Aruba Windows e\' configurato con PDO disabilitato. Chi vuole usare PHP PDO deve usare Linux che e\' anche su PHP 5.3.

    10/11/2014
  • simona

    bhe un pò mi sembra strano perchè sqlite è multipiattaforma, quindi dovrebbe essere disponibile anche su windows. tienici aggiornati!

    10/11/2014
  • Diego

    Allora l\'unica differenza e\' che il mio hosting e Windoz piuttosto che linux. Provo a chiedere via ticket ad Aruba. Grazie per la tua risposta Diego

    10/11/2014
  • fermat

    ciao! io ho questo come hosting: http://hosting.aruba.it/hosting_con_spazio.asp?offerta=2 quindi hosting linux base. per quanto riguarda il tuo comando, questo il risultato: driver pdo: mysql driver pdo: sqlite driver pdo: sqlite2 per essere precisi, non l\'ho dovuto richiedere il support a sqlite, era già disponibile (sia nell versione 1 che nella versione 2). a te che problemi da?

    10/11/2014
  • Diego

    Volevo sapere che hosting hai con Aruba, anche io volevo usare sqlite ma sia oggi dopo aver letto il tuo messaggio , sia un annetto fa: \"Fatal error: Uncaught exception \'PDOException\' with message \'could not find driver\' \" per curiosita\' se fai la lista dei pdo driver cosa ti da\' foreach (PDO::getAvailableDrivers() as $driver) { echo \' driver pdo: \' . $driver . \'<br />\'; } a me da\' solo mysql ciao e grazie Diego

    09/11/2014

Commentami!