# 为什么应通过 params 传递 SQL 值？

Canonical URL: https://help.iagenify.com/zh/faqs/databases/params-sql

[← 返回数据库常见问题](https://help.iagenify.com/zh/faqs/databases)

帮助中心 · 常见问题 数据库 1 分钟阅读
# 为什么应通过 params 传递 SQL 值？
调用 IaGenify SQL Database 时，应通过 `params` 字段传递查询值，而不要将值直接拼入 SQL 文本。参数化查询会将数据与语句结构分开，使重复查询更容易阅读和维护。
IaGenify
数据库

## 让值与 SQL 语法保持分离
查询通常会将固定指令与来自表单、工作流输入或先前数据库结果的值组合起来。请使用占位符构造 SQL 语句，并将对应值放入 `params`。
这样值会被当作数据处理，而不是 SQL 语法的一部分，也能减少引号和转义错误。
读取和写入都应采用这种方式：SQL Database 读取接受 `{ sql, params }`，execute 操作则接受 `action: "execute"` 以及 `sql` 和 `params`。
参数表示数据值，不能代替表名或列名；标识符和查询结构必须在 SQL 中明确选择。
## 检查语句和执行结果
使用连接的数据库所支持的参数格式，并按占位符顺序提供值。不要假设参数可以代替表名、列名或 SQL 关键字。应明确编写查询结构，并将变量数据放在参数中。
读取操作要检查返回的行，并确认筛选条件匹配了预期记录。execute 操作则根据情况检查行、变更数量或 lastRowId。
如果写入可能影响所有行，请有意添加 WHERE 条件；无范围限制的更新和删除需要显式设置 `all: true`。 [← 返回数据库常见问题](https://help.iagenify.com/zh/faqs/databases)
