Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/whizsid/arraybase
Pure PHP SQL Like Query Language To Manipulate Arrays.
https://github.com/whizsid/arraybase
array group helper join manipulate memory-database php pinned sql where
Last synced: 4 months ago
JSON representation
Pure PHP SQL Like Query Language To Manipulate Arrays.
- Host: GitHub
- URL: https://github.com/whizsid/arraybase
- Owner: whizsid
- License: mit
- Created: 2018-12-10T18:32:54.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2019-09-05T17:14:39.000Z (over 5 years ago)
- Last Synced: 2024-04-20T12:54:01.710Z (10 months ago)
- Topics: array, group, helper, join, manipulate, memory-database, php, pinned, sql, where
- Language: PHP
- Homepage: https://whizsid.github.io/arraybase
- Size: 160 KB
- Stars: 18
- Watchers: 4
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
---
Runtime SQL like query lanaguage for manipulate php arrays. written in pure php and not using any sql engine. Note:- this is not an any kind of query builder.
## Installation
You can install arraybase on composer package manager by using below command.
```
composer require whizsid/arraybase
```## Basic
### Creating an ArrayBase instance
This is how we are creating an array base instance.```
use WhizSid\ArrayBase\AB;$ab = new AB;
```
ArrayBase is simpler than other SQL Engines.### Creating an ArrayBase Table
```
use WhizSid\ArrayBase\AB\Table;
use WhizSid\ArrayBase\AB\Table\Column;$ab->createTable('customers',function(Table $tbl){
$tbl->createColumn('cus_id',function(Column $clmn){
$clmn->setType('integer')->setAutoIncrement();
});
$tbl->createColumn('cus_name',function(Column $clmn){
$clmn->setType('varchar');
});
$tbl->createColumn('cus_phone',function(Column $clmn){
$clmn->setType('varchar');
})
});```
Or with data array.```
$ab->createTable('tbl_another',[
[
'c_id'=>1,
'ant_id'=>"A"
],
[
'c_id'=>2,
'ant_id'=>"B"
]
]);```
### Join Clause
```
use WhizSid\ArrayBase\AB\Query\Clause\Join;$query = $ab->query();
$select = $query->select($ab->tbl_customer->as('cus'));
$select->join($ab->tbl_customer_cv->as('cv'))->on($query->cv->c_id,$query->cus->c_id);
$results = $select->execute();
```## Where Clause
```
$select->where($query->cus->c_id,"4567")->and($query->cv->c_name,"my name");
```## Limit
```
$select->limit(10,20);
```## Order
```
$select->orderBy($query->cus->c_name)->orderBy($query->cus->c_address,"desc");
```### Select query
```
$selectQuery = $ab->query()->select(
$ab->tbl_customer,
$ab::groupConcat(AB_DISTINCT,$ab->tbl_facility->fac_code)->as('new_sum'),
$ab->tbl_customer->c_id,
$ab->tbl_another->ant_id,
$ab->tbl_facility->fac_code
);$selectQuery->join(AB_JOIN_INNER,$ab->tbl_facility)->on($ab->tbl_customer->c_id,'=',$ab->tbl_facility->c_id);
$selectQuery->join(AB_JOIN_INNER,$ab->tbl_another)->on($ab->tbl_customer->c_id,'=',$ab->tbl_another->c_id);
$selectQuery->orderBy($ab->tbl_customer->c_id,'desc');
$selectQuery->groupBy($ab->tbl_another->ant_id);
$selectQuery->where($ab->tbl_another->ant_id,'=',"A");
$selectQuery->limit(1);
$result = $selectQuery->execute()->fetchAssoc();
```### Update Query
```
$updateQuery = $ab->query()->update($ab->tbl_customer)->set($ab->tbl_customer->c_name,'Updated name');
$updateQuery->where($ab->tbl_another->ant_id,"B");
$updateQuery->join(AB_JOIN_INNER,$ab->tbl_another)->on($ab->tbl_another->c_id,'=',$ab->tbl_customer->c_id);
$updateQuery->limit(1);
$updateQuery->execute();
```### Delete query
```
$deleteQuery = $ab->query()->delete($ab->tbl_customer);
$deleteQuery->where($ab->tbl_another->ant_id,"B");
$deleteQuery->join(AB_JOIN_INNER,$ab->tbl_another)->on($ab->tbl_another->c_id,'=',$ab->tbl_customer->c_id);
$deleteQuery->limit(1);
$deleteQuery->execute();
```All Examples in the `example/index.php` file.
## Goals
To bring all MySQL functions to PHP.
[Read the full documentation](https://whizsid.github.io/arraybase)