SuperAPI AI 工具集

bitrix-database

编程与开发

查看项目

更新于 10-15 08:59

技能介绍

本技能用于在 Bitrix 框架中直接访问数据库,适用于 ORM 无法满足需求的场景。

用途 当 ORM 不够用时使用:批量写入、upsert、窗口函数/CTE、重量级报表、额外数据库连接以及表结构变更。官方建议优先使用 ORM(bitrix-orm:query()、批量写入、merge、deleteByFilter),仅在上述场景下降到 SQL 层。

主要能力 按资料中的任务索引,技能覆盖以下内容:

  • 连接:连接配置、额外数据库、字符集、连接后钩子、命名锁,见 rules/connections.md。
  • 查询:query*、add/addMulti、SqlHelper、占位符、upsert、事务,见 rules/queries.md。
  • DDL 与调试:DDL 构建器、表/索引变更、SqlTracker,见 rules/ddl-debug.md。

使用方式与不变量

  • 每个值都必须通过 SqlExpression 占位符或 SqlHelper(forSql、convertToDb*)进入 SQL。query()/queryExecute() 的 $binds 参数不是预处理语句。
  • 来自输入的标识符:先做白名单,再使用 quote() / ?#。
  • 原生写入会跳过 ORM 事件和缓存:之后需调用 XxxTable::cleanCache()。
  • 只使用可移植 SQL:使用 SqlHelper 函数,不使用反引号、ENGINE、UNSIGNED(对应 bitrix-postgresql)。
  • 每个事务只使用一个连接;保持事务简短。

适用场景 需要直接数据库访问的 Bitrix 项目,尤其是批量写入、upsert、窗口函数/CTE、复杂报表、多数据库连接和表结构变更等 ORM 不便处理的场合。

限制 基线要求 main 23.0+,已验证 main 26.800.0。资料未提供安装命令、价格、平台支持范围或效果数据,暂未提供。