Mysql
 sql >> база данни >  >> RDS >> Mysql

Замяна на екраниращи двойни кавички с двойни кавички в R

Виждам два проблема с това, което сте включили във вашия въпрос. Първото изглежда като печатна грешка. След:

html <- "<div style='text-align: center; font-family: Arial;'><span style='font-size: 14pt;'>Some text without any tricky symbols.</span></div>"   

Имате:

query <- c('INSERT INTO table (htmlfield) VALUES (\"', html, '"')
                                                  ^^^^^^^^^^^^^^^

Забележете, че избягвате единия низ, но не и другия. Не е нужно да им избягвате, но няма значение дали го правите. Имахте предвид и '")' за последния низ, който, подозирам, е истинският източник на грешката, която получавате. paste вместо c тук е по-полезно. Ако комбинирам тези, получаваме:

query <- paste('INSERT INTO table (htmlfield) VALUES ("', html, '")', sep = "")

които можем да използваме директно:

dbSendQuery(con, query)

Вторият проблем, който много хора правят, е да объркат печатното представяне на обект със самия обект. Ако отпечатаме query , виждаме това:

> query
[1] "INSERT INTO table (htmlfield) VALUES (\"<div style='text-align: center; font-family: Arial;'><span style='font-size: 14pt;'>Some text without any tricky symbols.</span></div>\")"

Отпечатаното представяне на низа винаги е затворено в "" двойни кавички и като такива вътрешният " трябва да се избяга. Това, което искате да разгледате, е действителният низ. Можем да направим това с cat или writeLines - Предпочитам последното, тъй като добавя "\n" до края на низа автоматично:

> writeLines(query)
INSERT INTO table (htmlfield) VALUES ("<div style='text-align: center; font-family: Arial;'><span style='font-size: 14pt;'>Some text without any tricky symbols.</span></div>")

Забележете как " сега не избягал. Това е SQL, който ще се изпълнява от сървъра на базата данни. Ако това е валиден SQL за вашата DB, тогава ще работи.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Laravel 4 Миграции хвърлят 1072 грешка

  2. MySQL:транзакция в рамките на съхранена процедура

  3. Вземете всички POST данни и ги изпратете по имейл

  4. MySQL връзка през SSH тунел - как да посочите друг MySQL сървър?

  5. Wildfly 8.0.0 mysql проблеми с източник на данни