Skip to main content

AnyDataset-DB

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-6 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/filegetDbRelationalInstance()
MySQL/MariaDBmysql://username:password@hostname:port/databasegetDbRelationalInstance()
PostgreSQLpsql://username:password@hostname:port/databasegetDbRelationalInstance()
SQL Server (DbLib)dblib://username:password@hostname:port/databasegetDbRelationalInstance()
SQL Server (Sqlsrv)sqlsrv://username:password@hostname:port/databasegetDbRelationalInstance()
Oracle (OCI8)oci8://username:password@hostname:port/databasegetDbRelationalInstance()
Generic PDOpdo://username:password@pdo_driver?PDO_PARAMETERSgetDbRelationalInstance()

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"

Dependencies


Open source ByJG