noresources / ns-php-sql
SQL-related class library for PHP
Requires
- php: >= 5.6
- ferno/loco: dev-main
- noresources/ns-php-expression: ^1.2
- noresources/ns-php-mediatype: ^1.4
- psr/container: ^1.0
Requires (Dev)
- jdorn/sql-formatter: ^1.3-dev
- noresources/ns-xml: ^1.4
- phpunit/phpunit: >= 5.0
Suggests
- ext-mysql: *
- ext-pdo: *
- ext-pgsql: *
- ext-sqlite: *
- dev-master / 2.0.x-dev
- v2.0.0-alpha.12
- v2.0.0-alpha.11.2
- v2.0.0-alpha.11.1
- v2.0.0-alpha.11
- v2.0.0-alpha.10.4
- v2.0.0-alpha.10.3
- v2.0.0-alpha.10.2
- v2.0.0-alpha.10.1
- v2.0.0-alpha.10
- v2.0.0-alpha.9.6
- v2.0.0-alpha.9.5
- v2.0.0-alpha.9.4
- v2.0.0-alpha.9.3
- v2.0.0-alpha.9.2
- v2.0.0-alpha.9.1
- v2.0.0-alpha.9
- v2.0.0-alpha.8
- v2.0.0-alpha.7.1
- v2.0.0-alpha.7
- v2.0.0-alpha.6.2
- v2.0.0-alpha.6.1
- v2.0.0-alpha.6
- v2.0.0-alpha.5
- v2.0.0-alpha.4
- v2.0.0-alpha.3
- v2.0.0-alpha.2.1
- v2.0.0-alpha.2
- v2.0.0-alpha.1
- v1.1.2
- dev-test
- dev-github-actions
This package is auto-updated.
Last update: 2022-09-11 16:06:09 UTC
README
THIS PROJECT IS ABANDONED. See reasons bolow.
SQL abstraction layer for SQL engine and SQL language dialects.
Features
- Data structure description
- Abstract schemal oadable from XML schema
- Automatic DMBS type mapping
- DBMS Data structure manipulation and query
- Retrieve data structure description from DBMS
- Create DBMS structure from abstract data structure
- Add, remove or modify existing DBMS structure
- Update DBMS structure from differences with abstract data structure description
- SQL statement building
- Easy and powerful DBMS-independent statement building using literal expression and/or polish notation
- Accurate translation to DBMS dialect
- Automatic value formatting according table column properties
- DBMS drivers
- Prepare statements
- Execute statement with/without parameters
- Automatic column value deserialization of query results
- Native support of common DBMS
- SQLite
- PostgreSQL
- MySQL/MariaDB
- PDO (less accurate)
Reason for abandoning this project
ns-php-sql
2.0 was started to provide a clean, elegant,
simple but powerful abstraction layer over the
common DBMS systems. I was not satisfied by the API and/or internal design
of the most popular existing projects.
After three years of peaceful development, I came to the conclusion that I will not be able to spend enough time to achieve my goals. The number of compromise, tweaks and hacks required to have a decent unified solution for "only" three different systems is astonishing. DBMS internal constraints and SQL dialects differ so much that implementing a single feature could lead to a never ending story.