在Shiny R中查询以使用被动输入从数据库中检索数据

时间:2016-03-04 09:47:05

标签: r shiny rstudio

**UI.R**

library(shiny)

shinyUI
  (fluidPage
    (
      titlePanel("Predict"),

      sidebarLayout
      (
        sidebarPanel
          (
            (numericInput("tenth", label = h3("X Percentage"), value = 90)) ),
        mainPanel("Main Panel")
      )
    )
)


**Server.R**

library(shiny)
library(RMySQL)


shinyServer(
  function(input,output)
  {
    db <- dbConnect(MySQL(), dbname = "rstudio", host = "localhost", 
                    port = 3306, user = "root", password = "")

    query <- sprintf("SELECT * FROM userdetails where SSC = %s",input$tenth)
  }
)

错误 没有活动的反应上下文,不允许操作。 (你试图做一些只能在反应式表达式或观察者内部完成的事情。)

我知道我需要在反应式表达式或隔离中添加数据库查询。但是我该怎么写呢。我需要向用户显示检索到的数据,甚至使用数据进行进一步计算。

1 个答案:

答案 0 :(得分:0)

可能会在get_data()内的server.R内做出function(input, output)反应。

get_data <- reactive({
  query <- sprintf("SELECT * FROM userdetails where SSC = %s",input$tenth)
  df <- dbSendQuery(conn, query)
  return(df)
})

然后稍后使用get_data()访问该数据...