2
我使用R與RMySQL庫連接到Mysql數據庫。RMySQL錯誤報價轉義
我看到有一個與他們避開功能的一個問題:
> dbEscapeStrings(con, "HE''LLO")
[1] "HE\\'\\'LLO"
這是錯誤的,它應該是:"He\'\'LLO"
我一定要使用另一個函數逃脫引號和雙引號?
我使用R與RMySQL庫連接到Mysql數據庫。RMySQL錯誤報價轉義
我看到有一個與他們避開功能的一個問題:
> dbEscapeStrings(con, "HE''LLO")
[1] "HE\\'\\'LLO"
這是錯誤的,它應該是:"He\'\'LLO"
我一定要使用另一個函數逃脫引號和雙引號?
我認爲你錯誤地認爲打印的R表示與dbEscapeStrings()
的實際結果有誤。在R \
也需要逃脫。所以如果你想要一個文字\
,你需要兩個\\
。這是怎樣的轉義字符串由R打印時顯示並解釋所觀察到的行爲:
> foo <- dbEscapeStrings(con, "HE''LLO")
> foo
[1] "HE\\'\\'LLO"
但是,請注意,這只是逃脫串在控制檯R內部表示方式。如果我們cat()
或writeLines()
的轉義字符串到控制檯,而不是print()
-ing
> writeLines(foo)
HE\'\'LLO
我們看到它已經被正確轉義。後者是MySQL如何看待它。