[英]Insert a variable into a SQL statement
我有一個看起來像這樣的數據框:
city <- c("Alkmaar", "Den Haag")
df <- data.frame(city)
我現在想做的是將值寫入mysql數據庫。 因此,我執行以下操作:
library(DBI)
con <- dbConnect(RMySQL::MySQL(),
dbname = "match_predictions",
host = "109.237.221.34",
port = 3306,
user = "**",
password = "***")
for(i in 1:nrow(df)){
var1 <- city[i]
dbGetQuery(con, "INSERT INTO weather(city) VALUES(var1)")
}
但這引發了一個錯誤:
Error in .local(conn, statement, ...) :
could not run statement: Unknown column 'var1' in 'field list'
關於如何將變量插入數據庫的任何想法?
只需使用paste0編寫每個城市的查詢即可。 我添加了單引號,然后您需要確保如果發生這種情況,請轉義城市名稱中的任何單引號。
for(i in 1:nrow(df)){
var1 <- city[i]
# excape single quotes
var2 <- gsub("\\'", "\\'\\'", var1)
dbGetQuery(con, paste0("INSERT INTO weather(city) VALUES('", var2, "')"))
}
嘗試這個:
library(DBI)
con <- dbConnect(RMySQL::MySQL(),
dbname = "match_predictions",
host = "109.237.221.34",
port = 3306,
user = "**",
password = "***")
for(i in 1:nrow(df)){
var1 <- city[i]
dbGetQuery(con, cat("INSERT INTO weather(city) VALUES(", var1 <- city[i], ")"))
}
嘗試用下面顯示的dbGetQuery
行替換代碼中的dbGetQuery
行:
library(gsubfn)
fn$dbGetQuery(con, "INSERT INTO weather(city) VALUES('$var1')")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.