You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Encloses your application's database scripts within a simple and standardised interface, separating database access from your application logic.
The first parameter to any database functions is always the query name, which represents a query file on disk - either a raw SQL file or a PHP representation of a query using SqlBuilder.
Example usage
This library organises SQL access through a consistent API. To execute an example query located at src/query/user/getById.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($bookResultSetas$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" => newDateTime("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",
newDateTime("-6 months")
);
// Individual type-safe fields can be pulled from queries that return only one column:$userName = $db->fetchString("user/getUsernameById", 105);