phpgt / database

数据库API组织。

资助包维护!
PhpGt

v1.6.1 2024-02-10 18:18 UTC

README

Database logic organisation.

数据库API组织。

将您的应用程序数据库脚本封装在简单且标准化的接口中,将数据库访问与应用程序逻辑分离。

任何数据库函数的第一个参数始终是查询名称,它表示磁盘上的一个查询文件——可以是原始SQL文件或使用SqlBuilder表示的查询的PHP表示。

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

示例用法

此库通过一致的API组织SQL访问。要执行位于 src/query/user/getById.sql 的示例查询,使用以下模式

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

CRUD操作示例

// "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")
);

// Individual type-safe fields can be pulled from queries that return only one column:
$userName = $db->fetchString("user/getUsernameById", 105);

功能一览