Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从MySQL中删除选定的行_Mysql_R_Shiny - Fatal编程技术网

如何从MySQL中删除选定的行

如何从MySQL中删除选定的行,mysql,r,shiny,Mysql,R,Shiny,在我的shinyapp中单击delete按钮时,我需要从MySql数据库中删除所选的行。它必须适用于多重选择,与单一选择相同 我使用input$table\u rows\u selected,但它返回的是数据框中的行ID,而不是MySQL中的行ID。这就是它不起作用的原因 我的代码是: library(shiny) library(DBI) con <- dbConnect(RMySQL::MySQL(), dbname = "test", username = "root", pass

在我的shinyapp中单击delete按钮时,我需要从MySql数据库中删除所选的行。它必须适用于多重选择,与单一选择相同

我使用input$table\u rows\u selected,但它返回的是数据框中的行ID,而不是MySQL中的行ID。这就是它不起作用的原因

我的代码是:

library(shiny)
library(DBI)

con <- dbConnect(RMySQL::MySQL(), dbname = "test", username = "root", password = "password", host = "host", port = 3306)

onStop(function() {
  dbDisconnect(con)
})


ui <- fluidPage(
  DT::dataTableOutput("tbl"),
  actionButton("del", "Delete user"),
)

server <- function(input, output, session) {
  sqlOutput <- reactive({
    sqlInput <- "select * from test"
    dbGetQuery(con, sqlInput)
  })

  output$tbl <- DT::renderDataTable(sqlOutput(),
    server = TRUE, rownames = FALSE 
  )


  observeEvent(input$del, {
    delFunction(input$tbl_rows_selected)
  })

  delFunction <- function(id) {
    query <- sprintf("DELETE FROM test WHERE (`idtest` = '%d');", id)
    dbSendQuery(con, query)
  }
}

shinyApp(ui, server)
库(闪亮)
图书馆(DBI)

con我找到了修改这部分代码的解决方案:

  observeEvent(input$del, {
    delFunction(input$tbl_rows_selected)
  })

  delFunction <- function(id) {
    count <- id
    data <- sqlOutput()[count, 1]
    query <- sprintf("DELETE FROM test WHERE (`idtest` = '%d');", data)
    dbSendQuery(con, query)
  }
observeEvent(输入$del{
delFunction(输入$tbl\u行\u选中)
})
代尔函数