Skip to content

Repository files navigation

Sirius Sql

Source CodeLatest VersionSoftware LicenseBuild StatusCoverage StatusQuality Score

The siriusphp/sql library is designed to help you build and execute SQL simple and complex queries in a fast and safe way.

The vocabulary is as close to SQL as possible as you may see from the example below:

useAtlas\Pdo\Connection;
useSirius\Sql\Select;
useSirius\Sql\ConditionsEnum;
$connection = Connection::new('sqlite::memory:');
$select = newSelect($connection);
// find the 10 "cool" posts that are published and also retrieve the comments count$select->distinct()
->columns('posts.*', 'COUNT(comments.id) AS comments_count')
->from('posts')
->join('LEFT', 'comments', 'comments.commentable_id = posts.id AND comments.commentable_type = %s', 'posts')
->where('posts.published_at < NOW()')
->where('posts.title', 'cool', ConditionsEnum::CONTAINS)
->groupBy('posts.id')
->limit(10);
$posts = $select->fectchAll();

Links

Acknowledgements

This library is a derivative work of atlas/query. I made this library for 2 reasons:

  • to reduce cognitive load by removing some methods and implementing other ways to achieve the same goals (eg: nested conditions)
  • to optimize some operations for the most common scenarios (eg: where($column, $str, 'does_not_contain') vs where($column . ' LIKE ', '%' . $str . '%')

About

Flexible query building library for PDO connections with a small API surface and auto-complete support (low cognitive load)

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages