根据所选输入创建Shiny DataTable

时间:2017-07-14 21:21:00

标签: sql r shiny

以下代码(在我的闪亮应用中)给我这个错误: "您的SQL语法有错误;查看与您的MySQL服务器版本相对应的手册,以获得在''附近使用的正确语法。在第1行"

shinyServer(function(input, output, session) {
  dataTable <- reactive ({
    data <- input$dataset
    con <- 
      dbConnect(
        drv = dbDriver("MySQL"), 
        dbname = "Database",
        host = 'remote',
        port = 3306,
        user = "user",
        password = "password") 
    on.exit(dbDisconnect(con)) 
    dbGetQuery(con, paste("select * from ", data, ";"))
  })

  output$myTable <- renderDataTable({
    datatable(dataTable(), 
              rownames = FALSE, 
              filter = "top",
              extensions = 'Buttons', 
              options = list(dom = 'Bfrtip', buttons = I('colvis')))
  })

})
shinyUI(fluidPage(

  titlePanel("Data Search"), 

  # SidePanel -------------------------------------------
  # -The Input/Dropdown Menu that Control the Output
  sidebarLayout(
    sidebarPanel(

      selectInput(
        inputId = "dataset", 
        label = "Select Dataset", 
        choices = c("", "Schools", "GradRates"), 
        selected = "",
        multiple = FALSE),


      width = 3

    ),


    # MainPanel -------------------------------------------
    # -The Output/Table Displayed Based on Input
    mainPanel(
        dataTableOutput(outputId = "myTable"), 
        width = 9
      )
))

1 个答案:

答案 0 :(得分:0)

您最有可能遇到此问题

 dbGetQuery(con, paste("select * from ", data, ";"))

似乎可变数据不包含预期的表名。检查代码,将表名插入数据中。