Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Thay thế dấu ngoặc kép thoát bằng dấu ngoặc kép trong R

Tôi thấy có hai vấn đề với những gì bạn đã đưa vào Câu hỏi của mình. Đầu tiên trông giống như một lỗi đánh máy. Sau:

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

Bạn có:

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

Lưu ý rằng bạn thoát khỏi một chuỗi nhưng không thoát khỏi chuỗi kia. Bạn không cần phải thoát khỏi chúng, nhưng không quan trọng nếu bạn làm vậy. Ý của bạn cũng là '")' đối với chuỗi cuối cùng, tôi nghi ngờ, là nguồn thực sự của lỗi mà bạn đang gặp phải. paste thay vì c hữu ích hơn ở đây. Nếu tôi kết hợp chúng, chúng tôi nhận được:

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

mà chúng tôi có thể sử dụng trực tiếp:

dbSendQuery(con, query)

Vấn đề thứ hai, và một vấn đề mà nhiều người mắc phải là nhầm lẫn giữa biểu diễn in của một đối tượng với chính đối tượng đó. Nếu chúng tôi in query , chúng tôi thấy điều này:

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

Biểu diễn in của chuỗi luôn nằm trong "" dấu ngoặc kép, và chẳng hạn như " nội bộ cần được thoát ra. Những gì bạn muốn xem là chuỗi thực tế. Chúng ta có thể làm điều đó với cat hoặc writeLines - Tôi thích cái sau hơn vì nó thêm "\n" đến cuối chuỗi một cách tự động:

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

Lưu ý cách " bây giờ không đã trốn thoát. Đó là SQL sẽ được thực thi bởi máy chủ cơ sở dữ liệu. Nếu đó là SQL hợp lệ cho DB của bạn thì nó sẽ hoạt động.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySql - Cách nối hai bảng nhưng có giá trị không chính xác nhưng tương tự

  2. Làm thế nào để hiển thị các truy vấn cuối cùng được thực thi trên MySQL?

  3. Tôi nên cấu trúc bảng cài đặt của mình với MySQL như thế nào?

  4. cách giải quyết Lỗi chung:2014 Không thể thực hiện các truy vấn trong khi các truy vấn không có bộ đệm khác đang hoạt động. sử dụng kết nối PDO

  5. lập chỉ mục trên url hoặc băm xem xét RAM