An open API service indexing awesome lists of open source software.

https://github.com/byjg/php-anydataset-db

Anydataset Database Relational abstraction. Anydataset is an agnostic data source abstraction layer in PHP.
https://github.com/byjg/php-anydataset-db

anydataset byjg database microsoft-sql-server mysql postgressql relational-databases sqlite3

Last synced: 5 months ago
JSON representation

Anydataset Database Relational abstraction. Anydataset is an agnostic data source abstraction layer in PHP.

Awesome Lists containing this project

README

        

# AnyDataset-DB

[![Build Status](https://github.com/byjg/php-anydataset-db/actions/workflows/phpunit.yml/badge.svg?branch=master)](https://github.com/byjg/php-anydataset-db/actions/workflows/phpunit.yml)
[![Opensource ByJG](https://img.shields.io/badge/opensource-byjg-success.svg)](http://opensource.byjg.com)
[![GitHub source](https://img.shields.io/badge/Github-source-informational?logo=github)](https://github.com/byjg/php-anydataset-db/)
[![GitHub license](https://img.shields.io/github/license/byjg/php-anydataset-db.svg)](https://opensource.byjg.com/opensource/licensing.html)
[![GitHub release](https://img.shields.io/github/release/byjg/php-anydataset-db.svg)](https://github.com/byjg/php-anydataset-db/releases/)

**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](https://opensource.byjg.com/anydataset).

## 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:

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

Example usage:

```php
byjg/anydataset-array
byjg/anydataset-db --> ext-pdo
byjg/anydataset-db --> byjg/uri
byjg/anydataset-db --> psr/cache
byjg/anydataset-db --> psr/log
```

----
[Open source ByJG](http://opensource.byjg.com)