LODatabase is a simple, file-based PHP database class that works with JSON and plain text files. It includes essential CRUD functions and supports transaction-like behavior using action queuing, commit, and rollback.
Refresh the webpage to see a new example.
<?php
require_once 'lodatabase.php';
// Demo file
$fname = 'demo-' . uniqid() . '.json';
// Create a new database
$db = new LODatabase($fname);
// Insert some data
$db->insert(['name' => 'Alice', 'age' => 25, 'city' => 'New York']);
$db->insert(['name' => 'Bob', 'age' => 30, 'city' => 'Chicago']);
$db->insert(['name' => 'Charlie', 'age' => 35, 'city' => 'Los Angeles']);
// Commit changes
$db->commit();
// Select all users
$users = $db->select();
echo "<h3>All Users:</h3>\n";
print_r($users);
// Select users older than 30
$olderUsers = $db->select(function($row) {
return $row['age'] > 30;
});
echo "<h3>Users over 30:</h3>\n";
print_r($olderUsers);
// Update a user
$db->update(['id' => 1, 'name' => 'Alice Smith', 'age' => 26]);
$db->commit();
// Replace row with something else, using $merge parameter
$db->update(['id' => 3, 'not_a_user' => true], false);
$db->commit();
// Delete a user
$db->remove(2);
$db->commit();
// Select after changes
$finalUsers = $db->select();
echo "<h3>Users after changes:</h3>\n";
print_r($finalUsers);
// Clean up
unlink($fname);
<h3>All Users:</h3> Array ( [0] => Array ( [id] => 3 [name] => Charlie [age] => 35 [city] => Los Angeles ) [1] => Array ( [id] => 2 [name] => Bob [age] => 30 [city] => Chicago ) [2] => Array ( [id] => 1 [name] => Alice [age] => 25 [city] => New York ) ) <h3>Users over 30:</h3> Array ( [0] => Array ( [id] => 3 [name] => Charlie [age] => 35 [city] => Los Angeles ) ) <h3>Users after changes:</h3> Array ( [0] => Array ( [id] => 3 [name] => Charlie [age] => 35 [city] => Los Angeles ) [1] => Array ( [id] => 1 [name] => Alice [age] => 25 [city] => New York ) )