Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 

readme.md

Sirius Sql

Source Code Latest Version Software License Build Status Coverage Status Quality 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:

use Atlas\Pdo\Connection;
use Sirius\Sql\Select;
use Sirius\Sql\ConditionsEnum;

$connection = Connection::new('sqlite::memory:');
$select = new Select($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

License

Packages

No packages published

Languages

You can’t perform that action at this time.