簡體   English   中英

用於將textInput值傳遞給MYSQL查詢的語法

[英]Syntax for passing textInput value to MYSQL query

我試圖將textInput的值傳遞給MySQL查詢。

第一個問題是使用MySQL作為驅動程序時,將LIKE運算符與textInput結合使用的正確語法是什么? 我應將%%放在查詢語句的何處?

其次,如何最好地捕獲textInput的反應性,以便將其傳遞給查詢並創建表?

  library(shiny)
  library(DBI)
  library(RMySQL)

  server <- shinyServer(function(input, output, session) {
                con <- dbConnect(MySQL(), user='user', port = 3306, password='pwd', dbname='db', host='host' )

               on.exit(dbDisconnect(con), add = TRUE) 

      output$tableview <- renderTable({

             con <- dbConnect(MySQL(), user='user', port = 3306, password='pwd', dbname='db', host='host' )

             on.exit(dbDisconnect(con), add = TRUE)


           table <- reactive({
                    dbGetQuery(con, statement = 
                    paste0(" SELECT author,  title, publicationDate,  FROM publications  
                   WHERE publications.abstract LIKE %'",input$textSearch,"'% ")
                 )
                   })

                    table()

              })




       session$onSessionEnded(function() { dbDisconnect(con) })
         })


ui_panel <- 
        tabPanel("Text Input Test",
          sidebarLayout(
            sidebarPanel( 

             textInput("textSearch", " Search for keyword", ''),


                       br(),
                       submitButton("Update Table View"),
                       br()
           ),
           mainPanel(
           tabsetPanel(tabPanel("Table",tableOutput("tableview"))

           )
         )
    ))


 ui <- shinyUI(navbarPage(" ",ui_panel))

runApp(list(ui=ui,server=server))

類似的問題如何使用ui.R讀取TextInput,使用global.R中的該值處理查詢,並使用Shiny在server.R中顯示,該方法處理輸出並處理我本人沒有的全局文件。

任何見識將受到歡迎。

您當前的代碼應構造此SQL:

SELECT ... FROM publications WHERE publications.abstract LIKE %'test'%

問題: %應該在''

更新的行:

paste0("SELECT author, title, publicationDate,  FROM publications WHERE publications.abstract LIKE '%",input$textSearch,"%' ")

然后,應構造此SQL:

SELECT author, title, publicationDate, FROM publications WHERE publications.abstract LIKE '%test%'

為了進行測試,我建議使用renderText()verbatimTextOutput()將生成的SQL渲染為文本,然后查看結果。

您也可以考慮使用膠水包安全地構造SQL查詢。

對於第二個問題, “操作按鈕”文章可能會有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM