我用 R 的闪亮包创建了一个在线实验。假设我有 3 个反应值,称为"toss"、"decision" 和 " rating"。
此外,我在 Amazon Web 服务 RDS 上启动了一个MySQL数据库。版本是MySQL 5.6.22。
我成功地将非反应值(如时间戳)发送到 MySQL 数据库。所以我认为问题是在 Server.R 代码中找到与 MySQL 对话的代码的位置。对于非反应性值,当代码在反应性服务器功能之外(之前)时,它可以完美地工作。但是对于反应值,我想它应该在某个地方。
我试过这段代码:
Server.R
library(shiny)
library(RMySQL)
library(DBI)
con <- dbConnect(MySQL(), dbname="db", username="myname", password="mypassword", host="myhost.com", port=xxxx)
function(input, output, session){
sql <- reactive({
paste("insert into scenario1 (toss, dec, rat, timestamp)
values (",input$toss,",",input$decision,",",input$rating,"now())")
})
result<-reactive({dbSendQuery(con, sql())})
}
这样,我不会收到错误消息。所以也许错误在insert into
-code中。
此外,我不确定我使用的软件包是否适合此目的。我尝试了很多东西。每当我通过将反应值排除在 SQL 引用之外来添加反应值时,它就会停止工作。我开始认为 RMySQL 缺少该功能。手册中没有任何内容insert into
。
有没有人能发现我犯的错误?