sugiphp / database
数据库抽象层
Requires
- php: >=5.3
This package is not auto-updated.
Last update: 2024-09-14 13:45:36 UTC
README
SugiPHP\Database 是一个轻量级数据库访问接口。
DriverInterface
SugiPHP\Database\DriverInterface 是第一层抽象。在这一层上,有针对 MySQL、PostgreSQL、SQLite 等不同数据库的几个数据库驱动程序。每个实现此接口的数据库驱动程序都为我们提供了使用相同函数以统一方式连接到服务器和访问数据的能力。这包括一些基本操作,如
- open()
- close()
- query()
- fetch()
- escape() 以及其他一些。
在构造时,您可以传递连接设置或数据库句柄。如果提供了句柄参数,它将被使用,而不是创建新的数据库连接。如果句柄类型不正确,将抛出 SugiPHP\Database\Exception。请注意,不会自动建立连接 - 需要额外的 open() 调用。
如果发生连接问题,open() 方法将抛出 SugiPHP\Database\Exception。
close() 方法释放数据库句柄。在关闭连接后,只有当在创建时设置了连接设置,您才能使用 open() 方法创建另一个连接。
query() 方法用于所有 CRUD 操作。如果查询失败,该方法将返回 FALSE。您可以通过调用 error() 方法来检查 SQL 查询出了什么问题。
最后一点。您可以直接使用这些驱动程序,但由于它们非常轻量级,它们的操作有限。因此,您应该使用 SugiPHP\Database 来访问更多功能。
SugiPHP\Database\Database
SugiPHP\Database\Database 作为第二层抽象。它使用 DriverInterface 驱动程序作为基础并扩展功能。
- 构造时提供一个 DriverInterface 或 Database 可以通过一个数组作为参数自己生成。
- 数据库连接不是在创建时建立的。这使您能够在应用早期实例化 SugiPHP\Database。
- 在真正需要时自动建立连接 - 首次执行任何数据库操作时。
- 可以通过其原始名称访问特定于服务器类型的数据库函数。
- 在 close() 时释放数据库句柄
SugiPHP\Database\Exception
每个数据库都有自己的异常、警告和错误处理程序,因此我们需要一种标准方式来处理它们。SugiPHP\Database\Exception 定义了一个异常类型
- internal_error - 通常在 SugiPHP\Database 创建时发生 - 缺少或无效的参数、错误的数据库驱动程序类型、无效的句柄等。
- connection_error - 数据库连接错误
- sql_error - 数据库查询中的错误
- resource_error - 获取数据时出错,等。提供错误的资源,通常在 SQL 查询不匹配后发生