juangamonal / sqb
There is no license information available for the latest version (dev-master) of this package.
API moderna y sencilla que facilita la construcción y ejecución de consultas SQL sobre PDO
dev-master
2021-07-07 02:10 UTC
Requires
- ext-pdo: *
Requires (Dev)
- phpunit/phpunit: ^8
- squizlabs/php_codesniffer: ^3.5
This package is auto-updated.
Last update: 2024-09-07 08:49:01 UTC
README
Simple Query Builder (SQB) es una delgada capa sobre PDO que provee mecanismos para simplificar la construcción y ejecución de consultas SQL. Se ejecuta a través de una API moderna inspirada en las mejores prácticas de otras librerías del mismo propósito.
Características
- Compatible con PHP >=7.3.
- Testeado en MySql, Oracle y SQLite.
- Extensible a través de
Grammar
. - Manejo de transacciones.
Instalación
composer require juangamonal/sqb
Nota: para esta versión alpha
de SQB vas a necesitar indicar en tu archivo composer.json
la propiedad minimum-stability
en dev
.
Uso
use QueryBuilder\Builder; $pdo = new PDO('...'); $builder = new Builder($pdo);
La instancia de QueryBuilder
te permite encadenar métodos para realizar las consultas, por ejemplo:
$builder->select('name as first_name', 'last_name', 'email') ->where('status = 1', 'age > 18') ->get(); # SELECT name AS first_name, last_name, email FROM users WHERE status = 1 AND age > 18 echo $builder->toSql(); // obteniendo resultados $users = $builder->select('id')->from('users')->get(); // insertando datos $builder->insert([ 'id' => 1, 'name' => 'Foo' ])->into('users'); // modificando datos $id = 1; $builder->update([ 'name' => 'Foo', 'email' => 'foo@bar.com' ])->where("id = {$id}")->execute(); // eliminado datos $builder->delete() ->from('users') ->where("name like %Foo") ->execute(); // transacciones (callback) $builder->transaction(function($b) { // operaciones... $b->insert(['id' => 1])->into('users'); $b->setTable('posts')->delete()->where('user.id = 1')->execute(); // más operaciones ... }); // transacciones (manual) try { $builder->beginTransaction(); // operaciones... $builder->insert(['id' => 1])->into('users'); $builder->setTable('posts')->delete()->where('user.id = 1')->execute(); // más operaciones ... $builder->commit(); } catch (\Exception $e) { $builder->rollback(); }
Ejemplos
TODO
- Queries RAW.
- Subqueries.
- Aggregates.
Agradecimientos
- Base de datos Chinook (SQLite) utilizada en los ejemplos.