Skip to content

whizsid/arraybase

Folders and files

NameName
Last commit message
Last commit date

Latest commit

7aa9454 · Sep 5, 2019

History

49 Commits
May 12, 2019
Jun 14, 2019
Sep 5, 2019
Jun 14, 2019
May 15, 2019
May 10, 2019
Jun 7, 2019
May 9, 2019
Jun 29, 2019
Sep 5, 2019
Dec 9, 2018
Jun 6, 2019
Jun 6, 2019
Jun 6, 2019

Repository files navigation


License: MIT Total Downloads Latest Stable Version Build: parsing Style CI: parsed

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