我尝试在r中使用以下函数:
heritblup <- function(name) {
library(RMySQL)
library(DBI)
con <- dbConnect(RMySQL::MySQL(),
dbname ="mydab",
host = "localhost",
port = 3306,
user = "root",
password = "")
value1 <- 23;
rss<- paste0 ("INSERT INTO namestable
(myvalue, person)
VALUES ('$value1', '",name,"')")
rs <<- dbGetQuery (con, rss)
}
heritblup("Tommy")
但我一直有个错误:
as.character.default()中出错:没有方法将此s4类强制为从调用的向量:as.character.default()
我尝试将粘贴函数改为:rss<-paste0(“insert into namestable(myvalue,person)values($value1,“,name,”)”
错误仍然存在;我不知道怎么了。请帮忙
1条答案
按热度按时间i34xakig1#
代码中有几个问题。我不确定op是否试图
insert
数据库中的记录或从数据库中提取。假设,基于查询,他希望在数据库表中插入数据。
规则是查询应该在
R
它在mysql中的执行方式。价值置换(如有)应在R
因为mysql引擎不知道R
.因此,查询准备步骤应如下所示:
如果数据插入是目标,那么
dbGetQuery
而不是根据r文档的正确选项dbSendStatement()
应用于数据操作。来自帮助的参考建议:但是,强烈建议调用者对数据操作语句使用dbsendstatement()。
基于该查询,执行行应为: