alekvolsk / qbuilder
SQL Query Builder with fluent interface supporting multiple database drivers (MySQL, PostgreSQL, SQLite, MSSQL, Oracle, ClickHouse)
v2.0.0
2026-10-05 22:53 UTC
Requires
- php: >=8.4
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.95
- phpcompatibility/php-compatibility: ^10.0@alpha
- phpstan/phpstan: ^2.2
- phpstan/phpstan-strict-rules: ^2.0
- shipmonk/dead-code-detector: ^1.4
- slevomat/coding-standard: ^8.31
- spaze/phpstan-disallowed-calls: ^4.14
- squizlabs/php_codesniffer: ^4.0
- testo/testo: ^0.10.55
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-11-03 03:05:55 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
- Testo test suite, PHPStan at max level with strict rules
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.