gpt4 book ai didi

mysql - 如何安全地转义 R 中的引号以将文本提交给 SQL?

转载 作者:可可西里 更新时间:2023-11-01 06:40:33 25 4
gpt4 key购买 nike

我在 R 中有一些字符串,应该使用 RODBC 将其写入 MySQL 表。问题是我不知道如何处理字符串中的引号,既不会出现 MySQL 错误,又不会弄乱文本?

我确信解决方案有点简单,但目前我有点陷入自己的想法 - 我没有开箱即用......转义不转义转义两次用 2 个反斜杠或更好的 4(或8,只是为了省事)

示例:

require(RODBC)
con <- odbcConnect("MyMySQLDatabase")

string <- "What's up?"
query <- "INSERT INTO table (textcolumn) VALUES"

value <- paste0( "('", string, "')" )
sql <- paste( query, value, ";")

res <- sqlQuery(con, sql)

(如何处理我从可能带有单引号和双引号的文件中读入的文本?)

最佳答案

如果使用 RMySQL 包提供的 dbEscapeStrings() 函数可能是最好的方法去。该函数负责转义遵守 MySQL 设定的标准。 LINK

require(RMySQL)
mysql <- dbDriver("MySQL")
con <- dbConnect( mysql, user="superuser",
password="totallyawesomeandsavepassword",
host="dbhost.hosthome.dom",
dbname="awesome"
)
dbEscapeStrings(con,"'''''fhf'''''''''rh'''''''''")

# [1] "\\'\\'\\'\\'\\'fhf\\'\\'\\'\\'\\'\\'\\'\\'\\'rh\\'\\'\\'\\'\\'\\'\\'\\'\\'"

RMySQL 的手册指出:

dbEscapeStrings Currently, only the MySQL driver implements this method

关于mysql - 如何安全地转义 R 中的引号以将文本提交给 SQL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20175169/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com