1. Go to this page and download the library: Download pinoox/devdb library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
pinoox / devdb example snippets
inoox\DevDB\DevDatabase;
$db = DevDatabase::open(__DIR__ . '/storage/devdb');
$db->createTable('notes', [
'id' => ['type' => 'integer', 'primary' => true, 'auto_increment' => true],
'body' => 'string',
'created_at' => 'string',
]);
$db->statement(
'insert into notes (body, created_at) values (?, ?), (?, ?)',
[
'First note',
'2026-06-29 10:00:00',
'Second note',
'2026-06-30 10:00:00',
],
);
$notes = $db->select(
'select id, upper(body) as title, date(created_at) as day from notes where date(created_at) >= ? order by id desc',
['2026-06-29'],
);
foreach ($notes as $note) {
echo $note->id . ': ' . $note->title . ' @ ' . $note->day . PHP_EOL;
}
$affected = $db->execute('delete from notes where id = ?', [1]);
$latest = $db->selectOne(
'select * from notes order by id desc limit 1',
);
inoox\DevDB\Compat\DevPDO;
$pdo = DevPDO::open(__DIR__ . '/storage/devdb');
$pdo->exec('create table users (id integer primary key auto_increment, name varchar(80))');
$pdo->exec("insert into users (name) values ('Ava')");
$stmt = $pdo->prepare('select * from users where name = :name');
$stmt->execute(['name' => 'Ava']);
$users = $stmt->fetchAll(DevPDO::FETCH_ASSOC);
$id = $pdo->lastInsertId();
inoox\DevDB\Compat\DevMysqli;
$db = DevMysqli::open(__DIR__ . '/storage/devdb');
$db->query('create table posts (id integer primary key auto_increment, title varchar(120))');
$db->query("insert into posts (title) values ('Hello')");
$result = $db->query('select * from posts');
$post = $result->fetch_assoc();
$id = $db->insert_id;
Post::create([
'title' => 'Hello DevDB',
'status' => 'published',
]);
$posts = Post::where('status', 'published')
->orderBy('id', 'desc')
->get();
$rows = DB::app()->select(
'select id, title from posts where date(created_at) = ?',
['2026-06-29'],
);
namespace App\Providers;
use Illuminate\Database\Connection;
use Illuminate\Support\ServiceProvider;
use Pinoox\Component\Database\Connections\DevDbConnection;
class DevDbServiceProvider extends ServiceProvider
{
public function boot(): void
{
Connection::resolverFor('devdb', function ($connection, $database, $prefix, $config) {
return new DevDbConnection(null, $database ?: 'devdb', $prefix, $config);
});
}
}
DB::table('posts')->insert([
'title' => 'Hello from DevDB',
'status' => 'draft',
]);
$posts = DB::table('posts')
->where('status', 'draft')
->orderBy('id')
->get();
$raw = DB::select(
'select id, upper(title) as title from posts where status = ?',
['draft'],
);
$rows = $db->select(
'select date(created_at) as day, count(*) as total, sum(abs(amount)) as volume
from events
where lower(email) like ?
group by date(created_at)
having total >= ?
order by day desc',
['%@example.com', 1],
);
$db->statement(
'create table users (
id integer primary key auto_increment,
name varchar(120) not null,
email varchar(190),
created_at datetime,
unique key users_email_unique (email)
)'
);
$db->statement('alter table users add column status varchar(20) default "active"');
$db->statement('create index users_status_index on users (status)');
$tables = $db->select('show tables');
$columns = $db->select('describe users');
$indexes = $db->select('show index from users');
$snapshot = $db->snapshot('before-import');
$db->statement('delete from users where id > ?', [10]);
$db->restoreSnapshot('before-import');