当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R dbplyr build_sql 构建 SQL 字符串。


这是一个方便的函数,可以通过自动转义输入中的所有表达式来防止 sql 注入攻击(在 dplyr 的上下文中很可能是意外而不是故意的),同时将裸字符串视为 sql。这不太可能阻止任何严重的攻击,但应该使您不太可能生成无效的 sql。

用法

build_sql(..., .env = parent.frame(), con = sql_current_con())

参数

...

输入转换为 SQL。使用sql()按原样保留用户输入(危险),并使用ident()将用户输入标记为sql标识符(安全)

.env

评估参数的环境。典型使用中不需要。

con

数据库连接;用于选择正确的引用字符。

细节

仅当生成 SELECT 子句、其他高级查询或没有 R 等效项的其他语法时,才应使用此函数。对于单个函数翻译,首选 sql_expr()

例子

con <- simulate_dbi()
build_sql("SELECT * FROM TABLE", con = con)
#> <SQL> SELECT * FROM TABLE
x <- "TABLE"
build_sql("SELECT * FROM ", x, con = con)
#> <SQL> SELECT * FROM 'TABLE'
build_sql("SELECT * FROM ", ident(x), con = con)
#> <SQL> SELECT * FROM `TABLE`
build_sql("SELECT * FROM ", sql(x), con = con)
#> <SQL> SELECT * FROM TABLE

# http://xkcd.com/327/
name <- "Robert'); DROP TABLE Students;--"
build_sql("INSERT INTO Students (Name) VALUES (", name, ")", con = con)
#> <SQL> INSERT INTO Students (Name) VALUES ('Robert''); DROP TABLE Students;--')
源代码:R/build-sql.R

相关用法


注:本文由纯净天空筛选整理自Hadley Wickham等大神的英文原创作品 Build a SQL string.。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。