Ben en aradım 3 reaktif değerleri var diyelim R. için parlak paketi ile online bir deneme oluşturduktan "atmak", "karar" ve "değerlendirmesi". Ayrıca, Amazon web hizmeti RDS'de MySQL veritabanını kullanıma sundum. Sürüm, MySQL 5.6.22'dur.
Zaman damgası gibi MySQL veritabanına reaktif olmayan değerler göndermeyi başardım. Bu yüzden problemin, Server.R kodunda MySQL ile konuşulan kodu nerede bulacağının olduğunu düşünüyorum. Reaktif olmayan değerler için kod, reaktif sunucu işlevinin dışında (önceden) olduğunda mükemmel çalışır. Ancak reaktif değerler ile, bunun bir yerde olması gerektiğini düşünüyorum.Parlak bir uygulamadan reaktif girdi değerleri MySQL veritabanına nasıl eklenir?
Server.R
library(shiny)
library(RMySQL)
library(DBI)
con <- dbConnect(MySQL(), dbname="db", username="myname", password="mypassword", host="myhost.com", port=xxxx)
function(input, output, session){
sql <- reactive({
paste("insert into scenario1 (toss, dec, rat, timestamp)
values (",input$toss,",",input$decision,",",input$rating,"now())")
})
result<-reactive({dbSendQuery(con, sql())})
}
Bu şekilde, bir hata mesajı alamadım:
Bu kodu çalıştı. Yani belki de hata insert into
kodunun içinde.
Ayrıca, kullandığım paketlerin bu amaç için ideal olup olmadığından emin değilim. Çok fazla şey denedim. Ne zaman SQL-teklifinden çıkarak reaktif bir değer eklediğimde çalışmayı durdurur. RMySQL'in bu özelliği kaçırdığını düşünmeye başladım. Kılavuzda insert into
hakkında bir şey yoktur.
Yaptığım hatayı algılayabilen biri var mı? konudur
paste("insert into scenario1 (toss, dec, rat, timestamp)
values (",input$toss,",",input$decision,",",input$rating,"now())")
:
Bu sql programını ne zaman istiyorsunuz? Ben dbSendQuery'nizi bir 'isolate()' içine sarmanız gerekeceğini düşünüyorum. – cory
@cory Öneriniz için teşekkürler. 'Isolate (sql()) 'kodunu koduma ekleyebilir miyim? Bunu yaparak hala çalışmıyor. Bu yüzden o kadar basit olmadığını düşünüyorum. Parlak oturumun sonunda bu sql çalışmasını istiyorum. – schindst