/php-jsondb

A PHP Class that reads JSON file as a database. Use for sample DBs

Primary LanguagePHPMIT LicenseMIT

php-jsondb

A PHP Class that reads JSON file as a database. Use for sample DBs.

Usage

Include the file <?php include( 'JSONDB.Class.php' );?>

Initialize

	<?php 
	$json_db = new JSONDB();

Inserting

Insert into your new JSON file. Using users.json as example here

NB: Columns inserted first will be the only allowed column on other inserts

	<?php
		$json_db->insert( 'users.json', 
		[ 
			'name' => 'Thomas', 
			'state' => 'Nigeria', 
			'age' => 22 
		]);

Get

Get back data, just like MySQL in PHP

All columns:
	<?php
	$users = $json_db->select( '*' )
		->from( 'users.json' )
		->get();
	print_r( $users );
Custom Columns:
	<?php 
	$users = $json_db->select( 'name, state'  )
		->from( 'users.json' )
		->get();
	print_r( $users );
	
Where Statement:

This WHERE works as AND Operator at the moment or OR

	<?php 
	$users = $json_db->select( 'name, state'  )
		->from( 'users.json' )
		->where( [ 'name' => 'Thomas' ] )
		->get();
	print_r( $users );
	
	// Defaults to Thomas OR Nigeria 
	$users = $json_db->select( 'name, state'  )
		->from( 'users.json' )
		->where( [ 'name' => 'Thomas', 'state' => 'Nigeria' ] )
		->get();
	print_r( $users );  
	
	// Now is THOMAS AND Nigeria 
	$users = $json_db->select( 'name, state'  )
		->from( 'users.json' )
		->where( [ 'name' => 'Thomas', 'state' => 'Nigeria' ], 'AND' )
		->get();
	print_r( $users );  	
	
	
Order By:

Thanks to Tarun Shanker for this feature. By passing the order_by() method, the result is sorted with 2 arguments of the column name and sort method - JSONDB::ASC and JSONDB::DESC

	<?php 
	$users = $json_db->select( 'name, state'  )
		->from( 'users.json' )
		->where( [ 'name' => 'Thomas' ] )
		->order_by( 'age', JSONDB::ASC )
		->get();
	print_r( $users );

Updating Row

You can also update same JSON file with these methods

	<?php 
	$json_db->update( [ 'name' => 'Oji', 'age' => 10 ] )
		->from( 'users.json' )
		->where( [ 'name' => 'Thomas' ] )
		->trigger();
	

Without the where() method, it will update all rows

Deleting Row

	<?php
	$json_db->delete()
		->from( 'users.json' )
		->where( [ 'name' => 'Thomas' ] )
		->trigger();

Without the where() method, it will deletes all rows

Exporting to MySQL

You can export the JSON back to SQL file by using this method and providing an output

        <?php 
        $json_db->to_mysql( 'users.json', 'users.sql' );

Disable CREATE TABLE

        <?php 
        $json_db->to_mysql( 'users.json', 'users.sql', false );

Exporting to XML

Tarun Shanker also provided a feature to export data to an XML file

	<?php 
	if( $json_db->to_xml( 'users.json', 'users.xml' ) ) {
		echo 'Saved!';
	}