2016-09-22 35 views
0

一個如何在R中輸入撇號(')到mysql數據庫?

ui.R 

library(shiny) 
library(shinyjs) 

shinyUI(fluidPage(
    bootstrapPage(



) 
) 
) 

Server.R 

library(shiny) 
library(shinyjs) 
mydb=dbConnect(MySQL(),user='',password='123',dbname='test1',host='localhost') 
shinyServer(function(input, output,session){ 


column(4, 
        textInput("name", label = "NAME:", 
           value ='')), 
      column(4, 
        textInput("address", label = "Address:", 
           value ='')) 

column(2, 
           actionButton("add", "ADD")) 



observeEvent(
    input$add, 
output$ui123 <- renderUI({isolate({ 

dbSendQuery(mydb,paste("INSERT INTO table1(name,address) VALUES ('",input$name,"','",input$address,"');",sep=" ")) 
})})) 


    } 



}) 

如果輸入到地址包含撇號(例如:第一街的),那麼它顯示一個錯誤,MySQL的聲明包含了一些錯誤。這些數據如何在沒有任何錯誤的情況下輸入到R閃亮的Mysql中。

+1

你明顯容易受到[sql注入攻擊](http://bobby-tables.com),如果一個'''殺死你的查詢。你應該學會如何防止這種情況。 –

+0

你可以使用準備好的語句嗎? –

+0

我無法防止Rshiny中的錯誤。 – Rad

回答

-1

也許中庸之道加斜槓(如PHP):

gsub(pattern = "'", replacement = "\\\\'", x = "test'") 

相關問題