2016-09-22 4 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의 문이 약간의 오류가 없다는 오류를 보여줍니다. 이 데이터는 어떻게 반짝이는 Mysql에 오류없이 입력 할 수 있습니다.

+1

'''이 쿼리를 죽이면 분명히 [sql injection attacks] (http://bobby-tables.com)에 취약합니다. 그것을 방지하는 법을 배워야합니다. –

+0

준비된 진술을 사용할 수 있습니까? –

+0

Rshiny에서 오류를 방지 할 수 없었습니다. – Rad

답변

-1

어쩌면 juste (PHP 등) 슬래시를 추가

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

?