byjg/anydataset-db

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

Maintainers

👁 byjg

Package info

github.com/byjg/php-anydataset-db

pkg:composer/byjg/anydataset-db

Fund package maintenance!

byjg

Statistics

Installs: 87 562

Dependents: 4

Suggesters: 0

Stars: 5

Open Issues: 0

6.0.0 2025-11-25 14:52 UTC

Requires

Requires (Dev)

Suggests

Conflicts

None

Replaces

None

MIT dd6fb005ecbec21342e547f93d22cdc5a5f85907


README

sidebar_key anydataset-db
tags
php anydataset databases

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:

Database Connection String Factory Method
SQLite sqlite:///path/to/file getDbInstance()
MySQL/MariaDB mysql://username:password@hostname:port/database getDbInstance()
PostgreSQL psql://username:password@hostname:port/database getDbInstance()
SQL Server (DbLib) dblib://username:password@hostname:port/database getDbInstance()
SQL Server (Sqlsrv) sqlsrv://username:password@hostname:port/database getDbInstance()
Oracle (OCI8) oci8://username:password@hostname:port/database getDbInstance()
Generic PDO pdo://username:password@pdo_driver?PDO_PARAMETERS getDbInstance()

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

flowchart TD
 byjg/anydataset-db --> byjg/anydataset
 byjg/anydataset-db --> ext-pdo
 byjg/anydataset-db --> byjg/uri
 byjg/anydataset-db --> psr/cache
 byjg/anydataset-db --> psr/log
Loading

Open source ByJG