Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

15 Commits

Repository files navigation

ZQuery

ZQuery is a focused fluent SQL query builder for PHP 8.2+.

It gives you a lightweight database layer with:

  • fluent select, insert, update, and delete queries
  • PDO and MySQLi support
  • MySQL and PostgreSQL grammar support
  • transaction helpers
  • SQL compilation helpers for testing and debugging

Install

composer require zi/zquery

Quick Start

useZQuery\ZQuery;
useZQuery\Query\Grammar\MysqlGrammar;
$pdo = newPDO('mysql:host=127.0.0.1;dbname=app', 'user', 'pass', [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
]);
$zq = newZQuery([
'engine' => 'pdo',
'pdo' => $pdo,
'grammar' => newMysqlGrammar(),
]);
$users = $zq->table('users')
->select(['id', 'email'])
->where('status', '=', 'active')
->latest('created_at')
->limit(10)
->get();

Returns:

[
['id' => 42, 'email' => 'ada@example.com'],
['id' => 41, 'email' => 'grace@example.com'],
]

Common Helpers

$user = $zq->table('users')
->where('email', '=', 'a@example.com')
->first();
$activeCount = $zq->table('users')
->where('status', '=', 'active')
->count();
$emails = $zq->table('users')
->where('status', '=', 'active')
->pluck('email');

Returns:

$user = ['id' => 7, 'email' => 'a@example.com', 'status' => 'active'];
$activeCount = 24;
$emails = ['a@example.com', 'b@example.com', 'c@example.com'];

SQL Compilation

$compiled = $zq->table('users')
->where('users.status', '=', 'active')
->latest('users.created_at')
->limit(10)
->compileSelect();

Returns:

[
'sql' => 'SELECT * FROM `users` WHERE `users`.`status` = ? ORDER BY `users`.`created_at` DESC LIMIT 10',
'params' => ['active'],
]

Transactions

$zq->transaction(function () {
$this->table('users')
->where('id', '=', 10)
->update(['status' => 'disabled'])
->executeUpdate();
$this->statement(
'INSERT INTO audit_logs (action, user_id) VALUES (?, ?)',
['user.disabled', 10]
);
});

More Docs

See USAGE.md for the extended usage guide with more examples and result shapes.

About

ZQuery is a lightweight PHP database query builder and ORM

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages