U bent hier

SQLITE ; de lichtste database

logo

SQLite, de lichtste database?

Dit stond in het Linux Magazine, ( jaargang 7 - jaar 2006 - nummer 3 )

Een artikel over SQLite met als beschrijving, de lichtste database.
Mijn interesse was gewekt en ik besloot een applicatie te gaan ontwerpen in SQLite.

Na enig ontwerpen had ik het voor elkaar.
Een NAW applicatie.

Informatie over SQLite

Enige hoofdpunten uit bovenstaand artikel zijn:

  • Gebruikt weinig systeem bronnen
  • Zit standaard in PHP5, met enig bouwwerk ook vanaf 4.3.1
  • Vraagt geen configuratie
  • Kent een beperkt aantal datatypes
    • NULL
    • INTEGER
    • REAL
    • TEXT
    • BLOB
  • SQLite kent geen gebruikersaccounts
  • Kent niet alle MySQL opdrachten, doch slechts een sub set. ( Wel het grootste deel )
  • Bij aanpassingen aan de tabel, wordt de tabel even gesloten


Dit kan voor sommigen voordelen geven en voor anderen nadelen.

Of je het gebruikt, hangt af van je doel.
Voor kleine applicaties is het zeer goed te gebruiken.

Enige opmerkingen vooraf

Het artikel naar het kunnen gebruiken van SQLite richtte zich zowel op Windows als op Linux.
Het volgende artikel is voor mijn gemak onder Windows geschreven.

De standaard PHP installatie onder Windows ondersteunt sqlite.
De standaard PHP installatie onder Linux ook.

Mijn windows omgeving

Mijn php map is C:/php/
en mijn php extensies map is C:/php/extensions/

Aan het windows pad heb ik C:/php toegevoegd.
Dit om snel aanpassingen te kunnen doen plaatsvinden en alles op 1 plek te houden.

Het aanpassen van het Windows pad

Om het Windows pad aan te passen, diende ik het volgende te doen.

  • Ga naar Start
  • Klik op Configuratiescherm
  • Klik op Prestaties en Onderhoud
  • Klik op Systeem
  • Klik op Geavanceerd
  • Klik op Omgevingsvariabelen
  • Klik op Systeemvariabelen
  • Klik op Path
  • Klik op Bewerken
  • Toevoegen aan het eind ( Laat de rest staan) ;C:/php
  • 2 keer op OK klikken
  • Sluit daarna het venster

 

Het begin

<?php

echo "sqlite versie: ".sqlite_libversion() ;

echo
"<br /><br />";

echo
"sqlite taal ondersteuning: ".sqlite_libencoding();

?>
 
    info.php



Bovenstaand script geeft bij mij de volgende tekst.

sqlite versie: 2.8.14

sqlite taal ondersteuning: iso8859


Zie je versie nummers niet, kijk dan bijvoorbeeld in de error.log van Apache.
Deze kunnen meer informatie geven.

Het maken van de database

 

<?php

if ( $sqlite_db = sqlite_open( "adres.db", 0666, $sqlite_fouten ) )
    {
        
sqlite_query($sqlite_db, "CREATE TABLE adressen (id INTEGER PRIMARY KEY,
                                                          titel TEXT,
                                                          voornaam TEXT,
                                                          tussenvoegsel TEXT,
                                                          achternaam TEXT,
                                                          adres TEXT,
                                                          postcode TEXT,
                                                          woonplaats TEXT,
                                                          telefoon TEXT )"
) ;
    }
    else
    {
        die(
$sqlite_fouten ) ;
    }

?>
 
    begin.php



Begin.php bestaat uit 2 delen.

Het eerste deel checkt of er gebruik gemaakt kan worden van SQLite en handelt daarop volgend naar.
Deel 2 maakt de tabel aan.

Deel 1

Het opvallendste is : sqlite_open ( "adres.db" , 0666 , $sqlite_fouten )

Deze opdracht opent de database met als naam "adres.db"
met als schrijfrechten 0666
en geeft aan de variabele $sqlite_fouten eventuele fouten door.

Bestaat de database niet, probeert SQLite deze alsnog te maken.
Met een lege inhoud dan natuurlijk.
De schrijfrechten komen hier dan ook weer terug.

De naam van de database is willekeurig.
Elke naam wordt geaccepteerd.
Ook zonder een extensie.

Standaard zet SQLite de database op de plaats waar het script wordt uitgevoerd.
Wil je een aparte directorie?
Is geen probleem.

Maak van

"adres.db"

bijvoorbeeld

"./db/adres.db"

en het script maakt dan daar de database.

De fouten afhandelingsroutine:

die( $sqlite_fouten )

treedt in werking als er door