Files
query_builder/Readme.md
Juan Pablo Vial 3458cf8532 Readme
2022-09-08 18:05:59 -04:00

1.7 KiB

QueryBuilder

Requirements

  • PHP 8+ (Should work with 7+, but haven't tested it).
  • Psr\Container\ContainerInterface implementation like php-di/php-di.

Installation

composer.json

{
    ...
    "repositories": [
        {
            "type": "git",
            "path": "https://git.provm.cl/ProVM/query_builder.git"
        }
    ],
    "require": {
        ...
        "provm/query_builder": "^1.0",
        ...
    },
    ...
}

Setup

$container->set(ProVM\Concept\Database\Query\Select::class, function(Psr\Container\ContainerInterface $container) {
    return $container->get(ProVM\Database\Query\MySQL\Select::class);
});
$container->set(ProVM\Concept\Database\Query\Insert::class, function(Psr\Container\ContainerInterface $container) {
    return $container->get(ProVM\Database\Query\MySQL\Insert::class);
});
$container->set(ProVM\Concept\Database\Query\Update::class, function(Psr\Container\ContainerInterface $container) {
    return $container->get(ProVM\Database\Query\MySQL\Update::class);
});
$container->set(ProVM\Concept\Database\Query\Delete::class, function(Psr\Container\ContainerInterface $container) {
    return $container->get(ProVM\Database\Query\MySQL\Delete::class);
});

Usage

QueryBuilder

include_once 'vendor/autoload.php';
$qb = new QueryBuilder();

$query = $qb->select();
$query = $qb->insert();
$query = $qb->update();
$query = $qb->delete();

Queries

Select

$query = $qb->select();
$query = $qb->select(['id', 'column1']);

$query = $query->from('table');
$query = $query->joins([['table2', 'table1.column = table2.column']]);
$query = $query->where([['table2.column2', 10]]);