database
database copied to clipboard
Database Abstraction Layer, Schema Introspection, Schema Generation, Query Builders
Cycle DBAL
Secure, multiple SQL dialects (MySQL, PostgreSQL, SQLite, SQLServer), schema introspection, schema declaration, smart identifier wrappers, database partitions, query builders, nested queries.
Documentation
- Installation and Configuration
- Access Database
- Database Isolation
- Query Builders
- Transactions
- Schema Introspection
- Schema Declaration
- Migrations
- Errata
Requirements
Make sure that your server is configured with following PHP version and extensions:
- PHP 8.0+
- PDO Extension with desired database drivers
Installation
To install the component:
composer require cycle/database
Example
Given example demonstrates the connection to SQLite database, creation of table schema, data insertion and selection:
<?php
declare(strict_types=1);
require_once "vendor/autoload.php";
use Cycle\Database\Config;
use Cycle\Database\DatabaseManager;
$dbm = new DatabaseManager(new Config\DatabaseConfig([
'databases' => [
'default' => ['connection' => 'sqlite'],
],
'connections' => [
'sqlite' => new Config\SQLiteDriverConfig(
connection: new Config\SQLite\FileConnectionConfig(
database: 'runtime/database.db'
),
),
],
]));
$users = $dbm->database('default')->table('users');
// create or update table schema
$schema = $users->getSchema();
$schema->primary('id');
$schema->string('name');
$schema->datetime('created_at');
$schema->datetime('updated_at');
$schema->save();
// insert data
$users->insertOne([
'name' => 'test',
'created_at' => new DateTimeImmutable(),
'updated_at' => new DateTimeImmutable(),
]);
// select data
foreach ($users->select()->where(['name' => 'test']) as $u) {
print_r($u);
}
License:
MIT License (MIT). Please see LICENSE
for more information. Maintained
by Spiral Scout.