DB 服务提供了向数据库发送查询的初始能力。通过使用 PDO 和 HLEB2 框架的数据库配置的包装器,该服务提供了简单的方法与各种数据库(由 PDO 支持)进行交互。
必须启用 PHP PDO 扩展和必要的数据库驱动程序才能让此服务工作。
要使用不同的连接方法,例如 ORM(对象关系映射),请根据框架的配置设置添加选择的 ORM 作为服务容器。
根据 HLEB2 框架提供的项目结构,DB 服务只能在模型类中使用。
一个模型类(其模板可以使用控制台命令创建)作为MVC(用于 Web 的 Action-Domain-Responder)中使用的基本框架。
可以根据需要调整或替换为选择的 AR(活动记录) 或 ORM 库(然后调整控制台命令的模板)。
在模型中使用数据库查询的示例:
使用以下 DB 服务的方法来执行数据库查询。
dbQuery() 方法在上面的示例中用于直接创建 SQL 数据库查询。 在它中,查询和查询参数没有分开,因此必须使用特殊的 quote() 方法处理(正确地转义)每个可疑参数,尤其是来自 Request 的参数。
转义查询参数可确保防止 SQL 注入。 这种攻击基于将任意 SQL 表达式注入为外部数据的一部分。
DB 服务的另一种方法更为通用并简化了参数处理。
成功执行后,run()方法将返回一个已初始化的PDOStatement对象。 该对象的所有方法,如fetch()和fetchColumn(),都是PDO的标准方法。
PDOStatement的功能已在PDO文档中详细描述。
对于异步查询,使用该服务的方式类似,并取决于所使用的Web服务器配置。
此外,一些ORM库已适应此模式运行。
根据其文档,其中一个这样的库是Cycle ORM。
← Path Sessions →