Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
bin
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Database logic organisation.

Database API organisation.

Encloses your application's database scripts within a simple and standardised interface, separating database access from your page logic.

The first parameter to any database functions is always the query name, which represents a query file on disk.


Build status Code quality Code coverage Current version PHP.Gt/Database documentation

Example usage

This library organises SQL access through a consistent API. To execute an example query located at src/query/shop_item/getItemsInCategory.sql, the following pattern is used:

$userRow = $db->fetch("user/getById", 105);

Examples of CRUD operations:

// "fetchAll" method returns an iterable ResultSet of Row objects.
$bookResultSet = $db->fetchAll("shopitem/getItemsInCategory", "books");

foreach($bookResultSet as $bookRow) {
	echo "Book title: " . $bookRow->getString("title") . PHP_EOL;
	echo "Book price: £" . ($bookRow->getFloat("price") + $bookRow->getFloat("vat")) . PHP_EOL;
	
	if($bookRow->offerEnds) {
		echo "Item on offer until: " . $bookRow->getDateTime("offerEnds")->format("dS M Y");
	}
}

// "Create" method always returns the last inserted ID:
$newCustomerId = $db->create("customer/new", [
	"first_name" => "Marissa",
	"last_name" => "Mayer",
	"dob" => new DateTime("1975-05-30"),
]);

// "Update" or "delete" methods always return the number of affected rows:
$numberOfItemsAffected = $db->update("shop/item/increasePrice", [
	"percent" => 12.5
	"max_increase" => 20.00
]);

$numberOfDeletedReviews = $db->delete(
	"remove/deleteOlderThan",
	new DateTime("-6 months")
);

Features at a glance

Planned features

  • Compatibility with no-SQL databases
You can’t perform that action at this time.