sql >> Database teknologi >  >> RDS >> Mysql

Udskiftning af undladte dobbelte anførselstegn med dobbelte anførselstegn i R

Jeg ser to problemer med det, du har medtaget i dit spørgsmål. Den første ligner en tastefejl. Efter:

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

Du har:

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

Læg mærke til, at du undslipper den ene streng, men ikke den anden. Du behøver ikke undslippe dem, men det er lige meget, om du gør det. Du mente også '")' for den sidste streng, som jeg formoder er den egentlige kilde til den fejl, du får. indsæt i stedet for c er mere nyttigt her. Hvis jeg kombinerer disse, får vi:

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

som vi kan bruge direkte:

dbSendQuery(con, query)

Det andet problem, og et som mange mennesker laver, er at forveksle den trykte gengivelse af et objekt med selve objektet. Hvis vi udskriver forespørgsel , ser vi dette:

> 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>\")"

Den udskrevne repræsentation af strengen er altid omgivet af "" dobbelte anførselstegn, og som sådan den interne " skal undslippes. Det, du vil se på, er den faktiske streng. Det kan vi gøre med cat eller writeLines - Jeg foretrækker det sidste, da det tilføjer "\n" til slutningen af ​​strengen automagisk:

> 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>")

Bemærk, hvordan " er nu ikke undslap. Det er den SQL, der vil blive udført af databaseserveren. Hvis det er gyldig SQL for din DB, vil det fungere.



  1. PHP mysql bestillingsrækker

  2. Sådan kontrolleres status for PostgreSQL-serveren Mac OS X

  3. Postgresql GROUP_CONCAT tilsvarende?

  4. Bruger utf8mb4 i MySQL