alekvolsk / qbuilder
SQL Query Builder with fluent interface supporting multiple database drivers (MySQL, PostgreSQL, SQLite, MSSQL, Oracle, ClickHouse)
v1.0.0
2026-09-23 03:15 UTC
Requires
- php: >=8.4
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.95
- phpstan/phpstan: ^2.2
- phpunit/phpunit: ^13.3
Suggests
- ext-pcov: PCOV extension for code coverage analysis (recommended for faster coverage)
- ext-pdo: PDO extension for database connectivity (required for actual database operations)
- ext-pdo_dblib: PDO dblib driver for MS SQL Server support
- ext-pdo_mysql: PDO MySQL driver for MySQL/MariaDB support
- ext-pdo_oci: PDO Oracle driver for Oracle Database support
- ext-pdo_pgsql: PDO PostgreSQL driver for PostgreSQL support
- ext-pdo_sqlite: PDO SQLite driver for SQLite support
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-09-23 03:46:05 UTC
README
QBuilder is a PHP library that builds SQL query strings through a fluent API for MySQL/MariaDB, PostgreSQL, ClickHouse, MS SQL Server, Oracle and SQLite. It generates SQL only and does not open connections or execute queries.
- SELECT, INSERT, UPDATE, DELETE queries
- WHERE and HAVING conditions with nested groups
- JOINs, subqueries, aggregates, UNION, recursive CTEs
- Two syntaxes: method chaining and closures
- PHPUnit test suite, PHPStan level 10
Installation
composer require alekvolsk/qbuilder
Requirements
- PHP >= 8.4
Quick Start
use QBuilder\QbConsts; use QBuilder\QueryBuilder; $sql = (new QueryBuilder(QbConsts::DRIVER_PDO_MYSQL)) ->select('id', 'name', 'email') ->from('users') ->where() ->eq('status', 'active') ->end() ->build(true); // SELECT `id`, `name`, `email` FROM `users` WHERE (`status` = 'active')
Documentation
Contributing
See CONTRIBUTING.md.