uql
1.2.0
تستخدم هذه المكتبة معلمات استعلام URL وإنشاء استعلامات DB.
في هذه اللحظة ، يوفر التكامل مع:
المخطط:
composer require los/uqlيستخدم المنشئ معلمات الاستعلام "Q" للاستعلامات و "H" للتلميح (فرز ، ترتيب ، حدود ، إلخ). يمكنك تغيير هذه في المنشئ:
$ builder = new ZendDbBuilder ( $ select , ' query ' , ' hint ' );مثيل SELECT الذي تم إرجاعه بواسطة أساليب البناء هو استنساخ من تلك التي تم تمريرها في المنشئ.
تمرير الطلب مباشرة:
public function handle ( ServerRequestInterface $ request ): ResponseInterface
{
$ select = new Laminas Db Select ( ' table ' );
$ select = ( new ZendDbBuilder ( $ select ))-> fromRequest ( $ request );
$ statement = $ sql -> prepareStatementForSqlObject ( $ select );
$ results = $ statement -> execute ();
}أو تمرير المعلمات يدويًا:
public function handle ( ServerRequestInterface $ request ): ResponseInterface
{
$ queryParams = $ request -> getQueryParams ();
$ query = $ queryParams [ ' q ' ] ?? [];
$ hint = $ queryParams [ ' h ' ] ?? [];
$ select = new Laminas Db Select ( ' table ' );
$ select = ( new ZendDbBuilder ( $ select ))-> fromParams ( $ query , $ hint );
$ statement = $ sql -> prepareStatementForSqlObject ( $ select );
$ results = $ statement -> execute ();
}| عملية | استعلام عنوان URL | يختار |
|---|---|---|
| متساوي | ؟ q = {"id": 1} | حيث المعرف = 1 |
| لا | ؟ q = {"id": {"$ not": 1}} | حيث المعرف! = 1 |
| في | ؟ q = {"id": {"$ in": [1،2]}} | حيث معرف في (1 ، 2) |
| تسعة | ؟ q = {"id": {"$ nin": [1،2]}} | حيث لا في (1 ، 2) |
| يحب | ؟ q = {"name": {"$ like": | حيث اسم مثل "جون ٪" |
| باطل | ؟ q = {"$ null": "name"} | حيث الاسم خالية |
| ليس لاغ | ؟ q = {"$ nnull": "name"} | حيث الاسم ليس فارغا |
| و | ؟ q = {"$ و": [{"id": 1} ، {"name": | حيث المعرف = 1 واسم = "جون" |
| أو | ؟ q = {"$ أو": [{"id": 1} ، {"name": | حيث المعرف = 1 أو الاسم = "جون" |
| أكبر | ؟ q = {"السعر": {"$ gt": 100}} | حيث السعر> 100 |
| أكبر أو متساوية | ؟ q = {"Price": {"$ gte": 100}} | حيث السعر> = 100 |
| أقل | ؟ q = {"Price": {"$ lt": 100}} | حيث السعر <100 |
| أقل أو متساوية | ؟ q = {"Price": {"$ lte": 100}} | حيث السعر <= 100 |
| بين | ؟ q = {"السعر": {"$ bt": [100،200]}} | حيث السعر> = 100 والسعر <= 200 |
يمكنك مزج استفسارات العش والتعش:
| استعلام عنوان URL | يختار |
|---|---|
| ؟ | حيث "id"! = '1' و ("id" = '2' أو "id" = '3') و ("id" = '2' و "name" = 'test') |
| ؟ | حيث (("id" = '1' و "name" = 'test') أو "id"! = '1' أو "name" = 'test') |
| عملية | استعلام عنوان URL | يختار |
|---|---|---|
| نوع | ؟ | حيث المعرف = 1 طلب بالاسم ASC ، السعر desc |
| نوع | ؟ | حيث المعرف = 1 طلب بالاسم ASC ، السعر desc |
| حد | ؟ q = {} & h = {"$ limit": 10} | حدد * من حد الجدول 10 |
| الحد + تخطي | ؟ | حدد * من حد الجدول 10 تخطي 10 |