Skip to content
This repository was archived by the owner on Oct 11, 2025. It is now read-only.

Repository files navigation

SQLite client for amphp using parallel

Build Status

Installation

composer require vajexal/amp-sqlite

Usage

<?phpdeclare(strict_types=1);
useAmp\Loop;
useVajexal\AmpSQLite\SQLiteCommandResult;
useVajexal\AmpSQLite\SQLiteConnection;
useVajexal\AmpSQLite\SQLiteResultSet;
useVajexal\AmpSQLite\SQLiteStatement;
usefunctionVajexal\AmpSQLite\connect;
require_once'vendor/autoload.php';
Loop::run(function () {
/** @var SQLiteConnection $connection */$connection = yieldconnect('database.sqlite');
yield$connection->execute('drop table if exists users');
yield$connection->execute('create table users (id integer primary key, name text not null)');
yield$connection->execute('insert into users (name) values (:name)', [
':name' => 'Bob',
]);
/** @var SQLiteResultSet $results */$results = yield$connection->query('select * from users');
while (yield$results->advance()) {
$row = $results->getCurrent();
echo"Hello {$row['name']}\n";
}
/** @var SQLiteStatement $statement */$statement = yield$connection->prepare('update users set name = :name where id = 1');
/** @var SQLiteCommandResult $result */$result = yield$statement->execute([
':name' => 'John',
]);
echo"Updated {$result->getAffectedRowCount()} rows\n";
});

Transactions

<?phpdeclare(strict_types=1);
useAmp\Loop;
useVajexal\AmpSQLite\SQLiteConnection;
useVajexal\AmpSQLite\SQLiteTransaction;
usefunctionVajexal\AmpSQLite\connect;
require_once'vendor/autoload.php';
Loop::run(function () {
/** @var SQLiteConnection $connection */$connection = yieldconnect('database.sqlite');
yield$connection->execute('drop table if exists users');
yield$connection->execute('create table users (id integer primary key, name text not null)');
/** @var SQLiteTransaction $transaction */$transaction = yield$connection->beginTransaction();
yield$transaction->execute('insert into users (name) values (:name)', [
':name' => 'Bob',
]);
yield$transaction->createSavepoint('change_name');
yield$transaction->execute('update users set name = :name where id = 1', [
':name' => 'John',
]);
yield$transaction->releaseSavepoint('change_name');
yield$transaction->commit();
});

About

SQLite client for amphp

Resources

Stars

8 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages