Skip to main content

Database Abstraction Layer

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

Sponsor Build Status Opensource ByJG GitHub source GitHub license GitHub release

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:password@10.0.1.10/myschema");

Examples

Advanced Topics

Database Specifics

Install

Just type:

composer require "byjg/anydataset-db"

Dependencies


Open source ByJG