PHPackages                             emagombe/json-qb - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Database &amp; ORM](/categories/database)
4. /
5. emagombe/json-qb

ActiveLibrary[Database &amp; ORM](/categories/database)

emagombe/json-qb
================

Generate SQL query from JSON request

2.2.0(6y ago)624MITPHPPHP ^7.0

Since Nov 16Pushed 6y ago1 watchersCompare

[ Source](https://github.com/emagombe/JsonQB)[ Packagist](https://packagist.org/packages/emagombe/json-qb)[ RSS](/packages/emagombe-json-qb/feed)WikiDiscussions master Synced today

READMEChangelog (6)DependenciesVersions (10)Used By (0)

JSON Query Builder
==================

[](#json-query-builder)

Description
-----------

[](#description)

Generate sql query from JSON request

Instalation
-----------

[](#instalation)

### Using composer

[](#using-composer)

```
composer require emagombe/json-qb
```

### Without composer

[](#without-composer)

**Clone** the project or **download** a release from And import autoload.php file to you project

```
require_once 'JsonQB/autoload.php';
```

Database settings
-----------------

[](#database-settings)

```
use queryBuilder\JsonQB as JQB;

JQB::connect([
	'database' => '',	# Database name
	'host' => '',		# Host name
	'port' => '',		# Connection port
	'username' => '',	# Username
	'password' => '',	# Password
	'charset' => '',	# Charset
]);
```

Generating queries
------------------

[](#generating-queries)

### Insert

[](#insert)

```
use queryBuilder\JsonQB as JQB;

$sql = JQB::Insert('user',
	array(
		"value" => array(
			"username" => "JsonQB",
			"password" => "123",
			"email" => "example@example.net"
		)
	)
)->sql;

print_r($sql);
```

Returns

```
INSERT INTO user(username, password, email) VALUES ('JsonQB','123','example@example.net');
```

#### Inserting from html form

[](#inserting-from-html-form)

```

```

On myfile.php

```
$sql = JQB::Insert('user', $_POST)->sql;

print_r($sql);
```

Returns

```
INSERT INTO user(email, password) VALUES ('example@example.net', '123');
```

#### Executing query

[](#executing-query)

To execute the SQL query you only need to call the **execute** function from the JQB::Insert function response

```
$result = JQB::Insert('user', $_POST)->execute();

if($result->success) { echo "success"; } else { echo "failure" }

print_r($result->sql);		# Returns the executed sql query
print_r($result->id);		# Returns the last insert id
print_r($result->success);	# Returns 1 if success
```

### Update

[](#update)

```
use queryBuilder\JsonQB as JQB;

$sql = JQB::Update('user', [
	'value' => array(
		'username' => 'example'
	),
	'where' => array(
		array(
			'columns' => array('user.id' => 1)
		)
	)
])->sql;

print_r($sql);
```

Returns

```
UPDATE user SET username = 'example' WHERE id = '1';
```

#### Executing query

[](#executing-query-1)

To execute the SQL query you only need to call the **execute** function from the JQB::Update function response

```
$result = JQB::Update('user', [
	'value' => array(
		'username' => 'example'
	),
	'where' => array(
		array(
			'columns' => array('user.id' => 1)
		)
	)
])->execute();

if($result->success) { echo "success"; } else { echo "failure" }

print_r($result->sql);		# Returns the executed sql query
print_r($result->success);	# Returns 1 if success
```

### Delete

[](#delete)

```
use queryBuilder\JsonQB as JQB;

$sql = JQB::Delete('user', [
	'where' => array(
		array(
			'columns' => array('id' => 1)
		),
		array(
			'column' => 'user.id',
			'between' => array(1, 7)
		)
	)
])->sql;

print_r($sql);
```

Returns

```
DELETE FROM user WHERE id = '1' AND user.id BETWEEN 1 AND 7;
```

#### Executing query

[](#executing-query-2)

To execute the SQL query you only need to call the **execute** function from the JQB::Delete function response

```
$result = JQB::Delete('user', [
	'where' => array(
		array(
			'columns' => array('id' => 1)
		),
		array(
			'column' => 'user.id',
			'between' => array(1, 7)
		)
	)
])->execute();

if($result->success) { echo "success"; } else { echo "failure" }

print_r($result->sql);		# Returns the executed sql query
print_r($result->success);	# Returns 1 if success
```

### Truncate

[](#truncate)

```
use queryBuilder\JsonQB as JQB;

$sql = JQB::Truncate('user')->sql;

print_r($sql);
```

Returns

```
TRUNCATE user;
```

#### Executing query

[](#executing-query-3)

To execute the SQL query you only need to call the **execute** function from the JQB::Truncate function response

```
$result = JQB::Truncate('user')->execute();

if($result->success) { echo "success"; } else { echo "failure" }

print_r($result->sql);		# Returns the executed sql query
print_r($result->success);	# Returns 1 if success
```

### Select

[](#select)

#### Simple select

[](#simple-select)

```
use queryBuilder\JsonQB as JQB;

$sql = JQB::Select(array(
	"columns" => array("user.*", "user_type.*"),
	"from" => array("user", "user_type"),
	"where" => array(
		array(
			"columns" => array(
				"user.id" => "1"
			)
		),
	)
))->sql;

print_r($sql);
```

Returns

```
SELECT user.*, user_type.* FROM user, user_type WHERE user.id = '1';
```

#### Executing query

[](#executing-query-4)

To execute the SQL query you only need to call the **execute** function from the JQB::Truncate function response

```
$result = JQB::Select(array(
	"columns" => array("user.*", "user_type.*"),
	"from" => array("user", "user_type"),
	"where" => array(
		array(
			"columns" => array(
				"user.id" => "1"
			)
		),
	)
))->execute();

if($result->success) { echo "success"; } else { echo "failure" }

print_r($result->sql);		# Returns the executed sql query
print_r($result->data);		# Returns array of data result
print_r($result->json);		# Returns data result encoded to json string
print_r($result->object);	# Returns data in object Ex: from $data['id'] to $data->id
```

#### Select between

[](#select-between)

```
use queryBuilder\JsonQB as JQB;

$sql = JQB::Select(array(
	"columns" => array("user.*", "user_type.*"), # for all columns use array("*")
	"from" => array("user", "user_type"),
	"where" => array(
		array(
			"columns" => array(
				"user.id" => "1"
			)
		),
		array(
			"column" => "user.id",
			"between" => array(1, 7) # Between 1 and 7
		)
	)
))->sql;

print_r($sql);
```

Returns

```
SELECT user.*, user_type.* FROM user, user_type WHERE user.id = '1' AND user.id BETWEEN 1 AND 7
```

#### Custom operator

[](#custom-operator)

```
use queryBuilder\JsonQB as JQB;

$sql = JQB::Select(array(
	"columns" => array("user.*", "user_type.*"), # for all columns use array("*")
	"from" => array("user", "user_type"),
	"where" => array(
		array(
			"operator" => "like", # It may be =, !=, , >= or  array(
				"user.id" => "1"
			)
		),
	)
))->sql;

print_r($sql);
```

Returns

```
SELECT user.*, user_type.* FROM user, user_type WHERE user.id = '1';
```

#### Order BY

[](#order-by)

```
use queryBuilder\JsonQB as JQB;

$sql = JQB::Select(array(
	"columns" => array("*"),
	"from" => array("user", "user_type"),
	"where" => array(
		array(
			"operator" => "like", # It may be =, !=, , >= or  array(
				"user.id" => "1"
			)
		),
	),
	"order" => array("by" => "user.id", "order" => "asc"),
))->sql;

print_r($sql);
```

Returns

```
SELECT * FROM user, user_type WHERE user.id like '1' ORDER BY user.id asc
```

#### Order BY

[](#order-by-1)

```
use queryBuilder\JsonQB as JQB;

$sql = JQB::Select(array(
	"columns" => array("*"),
	"from" => array("user", "user_type"),
	"where" => array(
		array(
			"operator" => "like", # It may be =, !=, , >= or  array(
				"user.id" => "1"
			)
		),
	),
	"group" => array('by' => 'user.id'),
))->sql;

print_r($sql);
```

Returns

```
SELECT * FROM user, user_type WHERE user.id like '1' GROUP BY user.id
```

#### Join

[](#join)

```
use queryBuilder\JsonQB as JQB;

$sql = JQB::Select(array(
	"columns" => array("*"),
	"from" => array("user", "user_type"),
	'join' => array(
		'LEFT' => array(
			'table' => 'bank',
			'on' => array(
				array(
					'columns' => array(
						'bank.user_created' => 'user.id'
					),
				),
			),
		),
		'INNER' => array(
			'table' => 'cash',
			'on' => array(
				array(
					'operator' => 'like',
					'columns' => array(
						'cash.user_created' => 'user.id'
					),
				)
			),
		),
	),
	"where" => array(
		array(
			"operator" => "=", # It may be !=, like, , >= or  array(
				"user.id" => "1"
			)
		),
	)
))->sql;

print_r($sql);
```

Returns

```
SELECT * FROM user, user_type INNER JOIN `cash` ON cash.user_created like user.id LEFT JOIN `bank` ON bank.user_created = user.id WHERE user.id = '1'
```

#### IN

[](#in)

```
use queryBuilder\JsonQB as JQB;

$sql = JQB::Select(array(
	"columns" => array("*"),
	"from" => array("user", "user_type"),
	"where" => array(
		array(
			"operator" => "like", # It may be =, !=, , >= or  array(
				"user.id" => "1"
			)
		),
		array(
			'column' => 'user.id',
			'in' => JQB::Select(array(
				'columns' => ['user.id'],
				'from' => ['user']
			))->sql,
		)
	),
	"group" => array('by' => 'user.id'),
))->sql;

print_r($sql);
```

Returns

```
SELECT * FROM user, user_type WHERE user.id like '1' AND user.id IN (SELECT user.id FROM user) GROUP BY user.id
```

Transaction
-----------

[](#transaction)

JsonQB also supports Transaction

```
use queryBuilder\JsonQB as JQB;

JQB::connect([
	'database' => '',	# Database name
	'host' => '',		# Host name
	'port' => '',		# Connection port
	'username' => '',	# Username
	'password' => '',	# Password
	'charset' => '',	# Charset
]);

JQB::begin();		# Creates a new transaction

/* Execunting query */
$result = JQB::Insert('user', $_POST)->execute();

JQB::commit();		# Commits the created transaction

if($result->success) { echo "success"; } else { echo "failure" }
```

### Rollback

[](#rollback)

To roll back the transaction you need to call the JQB::rollback() function

```
JQB::begin();

/* Execunting query */
$result = JQB::Insert('user', $_POST)->execute();

JQB::rollback();

if($result->success) { echo "success"; } else { echo "failure" }
```

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity12

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity58

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~5 days

Total

8

Last Release

2323d ago

Major Versions

1.2.0 → v2.0.1-beta.12019-12-12

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/33861085?v=4)[Edson Magombe](/maintainers/emagombe)[@emagombe](https://github.com/emagombe)

---

Top Contributors

[![emagombe](https://avatars.githubusercontent.com/u/33861085?v=4)](https://github.com/emagombe "emagombe (47 commits)")

---

Tags

json-queryjson-requestjsonqbmysqlphpquery-builderquery-generatorsqlsql-queryquery builderquery-generatorJsonQB

### Embed Badge

![Health badge](/badges/emagombe-json-qb/health.svg)

```
[![Health](https://phpackages.com/badges/emagombe-json-qb/health.svg)](https://phpackages.com/packages/emagombe-json-qb)
```

###  Alternatives

[j4mie/idiorm

A lightweight nearly-zero-configuration object-relational mapper and fluent query builder for PHP5

2.0k1.5M29](/packages/j4mie-idiorm)[cycle/orm

PHP DataMapper ORM and Data Modelling Engine

1.3k835.4k64](/packages/cycle-orm)[usmanhalalit/pixie

A lightweight, expressive, framework agnostic query builder for PHP.

6872.2M15](/packages/usmanhalalit-pixie)[foolz/sphinxql-query-builder

A PHP query builder for SphinxQL and ManticoreQL with MySQLi and PDO drivers.

3232.2M32](/packages/foolz-sphinxql-query-builder)[nilportugues/sql-query-builder

An elegant lightweight and efficient SQL QueryInterface BuilderInterface supporting bindings and complicated query generation.

425239.4k6](/packages/nilportugues-sql-query-builder)[lulco/phoenix

Database Migrations for PHP

180329.4k4](/packages/lulco-phoenix)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
