Хранение данных блеска в mySql - PullRequest
0 голосов
/ 16 февраля 2019

Я хочу вставить свой вывод приложения в базу данных sql, я успешно установил соединение между базой данных и блестящим приложением. Вот мой код

     library(shiny)
     library(DBI)
    ui <- fluidPage(
    textInput("id", "Enter your ID:", "1"),
 tableOutput("tbl")
)

server <- function(input, output, session) {
     output$tbl <- renderTable({
   conn <- dbConnect(
     drv = RMySQL::MySQL(),
  dbname = "shiny_database",
  host = "r.cr7lk1jwjdht.us-east-2.rds.amazonaws.com",
  username = "kartik",
  password = "12345678")
on.exit(dbDisconnect(conn), add = TRUE)
    query <- paste0("INSERT INTO db(id2 , id ) VALUES ('13','43') ")
  # dbGetQuery(conn, query)

 # query <- paste0("SELECT * FROM db WHERE id = '", input$id, "';")   
dbGetQuery(conn, query)

 })
  }
shinyApp(ui, server)

Здесь я могу вставить свои данные, используя запрос на вставку, нокогда у меня есть огромные выходные данные для вставки, в этом случае я не могу использовать запрос вставки снова и снова.Может ли кто-нибудь помочь мне, как я могу вставить свои данные.После поиска я также обнаружил, что есть временная папка, в которой выходные данные хранятся временно, если возможно, что я могу использовать временную папку для помещения данных в базу данных.

Ответы [ 2 ]

0 голосов
/ 19 февраля 2019

Вставьте фрейм данных в базу данных, как показано ниже базового кода.

library(shiny)
library(DBI)
library(pool)
pool <- dbPool(drv = RMySQL::MySQL(),dbname = "db_name",host = "host",username = "user_name",password = "password", port = 3306)

ui <- fluidPage(
  submitButton("submit")
)
server <- function(input, output){
  dbWriteTable(pool, "dummyTable", df, append = TRUE) #this will insert the entire dataframe at once into dummyTable
}

shinyApp(ui, server)

Чтобы продолжить этот метод, вам нужно поместить все значения в фрейм данных.Когда вы отправляете кнопку, фрейм данных будет вставлен в таблицу.(Не публикуйте учетные данные пользователя, если они не дублируются)

0 голосов
/ 16 февраля 2019

Как насчет использования actionButton ()?https://shiny.rstudio.com/reference/shiny/1.0.1/actionButton.html

Вы можете разместить actionButton(inputId = "IDForActionButton") в ui.R.actionButton() создает кнопку в пользовательском интерфейсе.И когда кнопка нажата, это запускает пересчет кодов server.R, которые включают input$IDForActionButton.

. Вы должны заключить input$id с isolate (), как показано в ссылке.Поскольку без этого каждый раз при изменении содержимого входного $ id запускается пересчет кодов server.R, которые включают input$id.

Возможно, использование библиотеки пула вам поможет.https://shiny.rstudio.com/articles/pool-basics.html

...