AnyDataset-DB
Anydataset Database Relational abstraction. Anydataset is an agnostic data source abstraction layer in PHP.
See more about Anydataset here.
Features
- Connection based on URI
- Support and fix code tricks with several databases (MySQL, PostgresSql, MS SQL Server, etc)
- Natively supports Query Cache by implementing a PSR-6 interface
- Supports Connection Routes based on regular expression against the queries, that's mean a select in a table should be executed in a database and in another table should be executed in another (even if in different DB)
Connection Based on URI
The connection string for databases is based on URL.
See below the current implemented drivers:
Database | Connection String | Factory |
---|---|---|
Sqlite | sqlite:///path/to/file | getDbRelationalInstance() |
MySql/MariaDb | mysql://username:password@hostname:port/database | getDbRelationalInstance() |
Postgres | 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() |
<?php
$conn = \ByJG\AnyDataset\Db\Factory::getDbInstance("mysql://root:[email protected]/myschema");
Examples
- Getting Started
- Basic Query and Update
- Sql Statement Object
- Cache results
- Database Transaction
- Load Balance and Connection Pooling
- Database Helper
- Filtering the Query
Advanced Topics
- Passing Parameters to PDODriver
- Generic PDO Driver
- Running Tests
- Getting an Iterator from an existing PDO Statament
Database Specifics
Install
Just type:
composer require "byjg/anydataset"