Skip to main content

Database Abstraction Layer

Sponsor Build Status Opensource ByJG GitHub source GitHub license GitHub release

AnyDataset-DB provides a relational database abstraction layer. It is part of the Anydataset project, an agnostic data source abstraction layer for PHP.

Learn more about Anydataset here.

Features

  • Connection based on URI
  • Handles compatibility and code optimization across multiple databases (e.g., MySQL, PostgreSQL, MS SQL Server)
  • Built-in Query Cache support using a PSR-16 compliant interface
  • Enables connection routing based on regular expressions for queries (e.g., directing queries to different databases for specific tables)

Connection Based on URI

Database connections are defined using URL-based connection strings.

Supported drivers are listed below:

DatabaseConnection StringFactory Method
SQLitesqlite:///path/to/filegetDbInstance()
MySQL/MariaDBmysql://username:password@hostname:port/databasegetDbInstance()
PostgreSQLpsql://username:password@hostname:port/databasegetDbInstance()
SQL Server (DbLib)dblib://username:password@hostname:port/databasegetDbInstance()
SQL Server (Sqlsrv)sqlsrv://username:password@hostname:port/databasegetDbInstance()
Oracle (OCI8)oci8://username:password@hostname:port/databasegetDbInstance()
Generic PDOpdo://username:password@pdo_driver?PDO_PARAMETERSgetDbInstance()

Example usage:

<?php
$conn = \ByJG\AnyDataset\Db\Factory::getDbInstance("mysql://root:[email protected]/myschema");

Examples

Advanced Topics

Database Specifics

Install

Just type:

composer require "byjg/anydataset-db"

Dependencies


Open source ByJG