Phalcon 查询语言 (PHQL)

2025年3月17日 | 阅读 3 分钟

它允许用户实现类似于 SQL 查询语言的查询语言。 PHQL 实现为连接到 RDBMS 的解析器。 Phalcon 解析器使用与 SQLite 相同的技术。

PHQL 由以下列出的功能组成

  • 它使用绑定参数来保护代码。
  • 它通过每次调用执行一条 SQL 语句来防止注入。
  • 它忽略了 SQL 注入中常用的大部分注释。
  • 它只允许执行数据操作语句。

PHQL 生命周期

PHQL 允许开发人员根据需要进行个性化和自定义。 以下是 PHQL 语句的生命周期,该语句被执行

  • PHQL 被解析并转换为中间表示 (IR)。 IR 独立于数据库系统的 SQL 实现。
  • IR 根据数据库系统转换为有效的 SQL。
  • PHQL 语句被解析一次并缓存在内存中。 相同语句的进一步执行会导致执行速度略快。

实施

前端

首先,我们创建一个获取输入的前端。

我们有 2 个模型,Mobile 和 Brands

创建 PHQL 查询

它是在目录 Phalcon\Mvc\Model\Query. 下创建的

执行 PHQL 查询

它从目录 Phalcon\Mvc\Model\Manager. 下的控制器或视图中执行

输出

Phalcon PHQL 1

结果类型

结果类型有两种:简单和复杂,具体取决于我们查询的列的类型。

如果我们检索单个对象,则返回的对象是简单结果 (Phalcon\Mvc\Model\Resultset\Simple)

如果我们同时访问完整的对象和标量,则返回复杂结果 (Phalcon\Mvc\Model\Resultset\Complex)。


下一主题Phalcon 模型