Veel hosting providers hebben een restrictie op de hoeveelheid MySQL databases die je mag aanmaken. Hierdoor heb ik geen spelingsruimte om mijn verschillende developer-projecten te hosten vanuit dezelfde domeinnaam (daan.onl), aangezien deze veelal een eigen database vereisen.

Alle projecten door elkaar laten lopen binnen één database met verschillende tabellen is ook niet wat ik wilde :). Dus ging ik kijken naar een alternatief en kwam uit op: SQLite

Simpele SQLite implementatie

Lokaal werken met een SQLite database gaat erg eenvoudig:

  1. Download de voor jou relevante versie (zelf gebruik ik deze)
  2. Ga in je terminal naar de folder waar je de sqlite3.exe hebt uitgepakt en open de toepassing. 
$ cd /path/to/sqlite3
$ sqlite3

3. Vervolgens maken we een simpele blogpost-tabel aan binnen de nieuwe sqlite> commandline.

sqlite> create tabel blogpost(title varchar(150), content text);
sqlite> insert into blogpost values('hello world', 'Hello World!');

4. En voeren we onze eerste query uit!

sqlite> select * from blogpost;
hello world|Hello World!

Nu weten we in ieder geval dat we een simpele opslag hebben die we kunnen gebruiken, mochten we bijvoorbeeld een kleine blog-demo willen opzetten. 

SQLite en PHP

Hartstikke tof zo'n lokale database, maar we moeten deze natuurlijk wel kunnen koppelen aan onze toekomstige code. Gelukkig heeft PHP hier een standaard integratie voor via PDO. Tijd voor een voorbeeld met behulp van onze hiervoor aangemaakte database.

 1. Eerst maar eens onze gemaakte database converteren naar een fysiek aan te spreken bestand.

sqlite> .save blogpost.db

2. Maak in je php-omgeving een nieuwe folder 'blogpost' en maak daarin een aparte folder 'data'. Kopieer blogpost.db naar 'blogpost/data'.

3. Daarna kunnen we een simpel PHP-script schrijven om de data uit onze database te halen en te gebruiken als output voor het script.

<?php

$conn = new PDO("sqlite:data/blogpost.db");

$results = $conn->query("SELECT * FROM blogpost");

foreach($results->fetchAll() as $row) {
	echo "Titel: " . $row['title'] . "<br />";
	echo "Content: " . $row['content'];
}

?>

 4. Open vervolgens localhost/blogpost en voila! We hebben een mini-database gemaakt en gebruikt voor het tonen van onze blogposts!

Titel: hello world
Content: Hello World!

Conclusie

Ik heb net SQLite als vorm van opslag ontdekt en ben erg enthousiast. Het vangt prima de basisfuncties van MySQL af en is prima te bedienen vanaf de command line. Daarnaast is het opslaan van de database als fysiek bestand en deze aan te roepen via PDO, een perfecte uitkomst voor mij als PHP programmeur :).

Wie weet kun je er ook nog je voordeel mee doen!