重新提交MySQL调用,然后在刷新应用程序时刷新数据

时间:2017-06-14 15:26:40

标签: r shiny rmysql

我编写了一个应用程序,它调用存储过程来更新MySQL中的表,然后查询新表(使用RMySQL),进行一些数据操作并绘制一堆图。

我设计的应用程序包含一个刷新按钮,假设当页面刷新时,闪亮会重新查询数据库并重新计算输出的所有值。然而,在测试之后,它没有这样做(并且保持旧值不被预刷新)。我按下刷新按钮时尝试关闭与数据库的连接,然后重新打开它,但这只会导致应用程序断开连接。

我的问题是为什么它会记住旧值而不是更新它们,并且有什么方法可以告诉它在刷新后重新执行所有操作?抱歉,如果这是一个非常基本的问题,任何可以指向正确方向的东西都会很棒。

我已经在下面列出了相关块的示例,但不确定它会有多大用处!

 library(RMySQL)
 library(shiny)
 library(shinyjs)

 con = dbConnect(RMySQL::MySQL(), dbname="abfd", 
 username="abc",password="abc123", host='blah, port=3306))

 con2 = dbConnect(RMySQL::MySQL(), dbname="abfd", 
 username="abc",password="abc123", host='blah, port=3306))

 frfr<-dbGetQuery(con2, 'CALL Updatedata();' )

 Data<-as.data.frame(dbGetQuery(con,'SELECT Date, Age,Name FROM Results 
 WHERE Date >= DATE(NOW()) - INTERVAL 7 DAY ORDER BY Date Asc;'))

 jsResetCode <- "shinyjs.reset = function() {history.go(0)}"

 ui <- fluidPage(
 shinyjs::useShinyjs(),
extendShinyjs(text = jsResetCode),

actionButton('Refresh','Refresh Data')
)

server <- function(input, output,session) {
observeEvent(input$Refresh,{
{js$reset()}
})
}
shinyApp(ui=ui, server=server) 

0 个答案:

没有答案