普贤教程 › 包参考
querybuilder 包
链式 SQL 构造
| 项 | 值 |
|---|---|
| 包名 | querybuilder |
| 版本 | 0.2.0 |
| 可用版本 | 0.1.0 / 0.2.0 |
| 入口 | querybuilder.px |
| 分类 | 数据库 |
| 文件数 / 行数 | 1 / 382 |
安装与引入
bash
pxpkg init # 首次 pxpkg add querybuilder@0.2.0 pxpkg install
px
import querybuilder所属分类教程:数据库
公开接口
| 函数 | 参数 |
|---|---|
qb_quote_ident | name |
qb_escape | value |
qb_select | table |
qb_insert | table, data |
qb_update | table, data |
qb_delete | table |
qb_where | q, column, op, value |
qb_where_in | q, column, values |
qb_where_like | q, column, pattern |
qb_order_by | q, column, dir = "ASC" |
qb_group_by | q, column |
qb_having | q, column, op, value |
qb_limit | q, n |
qb_offset | q, n |
qb_join | q, table, left, right, type = "INNER" |
qb_distinct | q |
qb_build | q |
qb_build_params | q |
qb_build_ok | q |
其余 6 个 def(内部与辅助,可直接调用但不属稳定接口)
| 函数 | 参数 |
|---|---|
qb_where_null | q, column |
qb_where_not_null | q, column |
qb_build_wheres | wheres |
join | arr, sep |
qb_push | dst, src |
_qb_wheres_params | wheres |
包内说明(源码头注释)
text
============================================================
普贤生态库:registry/querybuilder — 链式 SQL 构造
------------------------------------------------------------
纯函数库,双模式一致。
实现要点:
- qb_build(q) → string,行为不变(内联转义),注释口径改成「内联转义」
- qb_build_params(q) → [sql, params],值位置一律换成 ?(预处理绑定用这个)
- qb_build_ok(q) → Ok([sql, params]) | Err(msg)(空表名/空列等前置校验)
- dbal 的对应函数是 db_* 前缀,两包可同文件共存
对齐 PHP query-builder / Laravel Query Builder / Knex.js:
qb_select(table) → 创建 SELECT 查询
qb_insert(table, data) → 创建 INSERT 查询
qb_update(table, data) → 创建 UPDATE 查询
qb_delete(table) → 创建 DELETE 查询
qb_where(q, column, op, value) → 添加 WHERE 条件
qb_where_in(q, column, values) → WHERE column IN (...)
qb_where_like(q, column, pattern) → WHERE column LIKE pattern
qb_order_by(q, column, dir) → ORDER BY
qb_group_by(q, column) → GROUP BY
qb_having(q, column, op, value) → HAVING
qb_limit(q, n) → LIMIT
qb_offset(q, n) → OFFSET
qb_join(q, table, left, right, type) → JOIN
qb_distinct(q) → SELECT DISTINCT
qb_count(q) → SELECT COUNT(*)
qb_build(q) → 生成 SQL 字符串(值内联转义)
qb_build_params(q) → [SQL 字符串, 参数列表](值是 ?,预处理绑定用)
qb_quote_ident(name) → 标识符引号
qb_escape(value) → 值转义(防 SQL 注入)
============================================================