注意:我發現re.escape(string)會轉義,但是man轉義很多。如果必須的話,我可以使用它,但是我會留下任何其他想法的問題,以防萬一未來發生這種情況。使用Python/MySQLdb進行UPDATE操作的MySQL的轉義字符
我發現了一個很棒的S.O.在這裏回答關於INSERT數據到Python與Python(我使用2.7),其中數據包含撇號:Python mySQL - escaping quotes
簡而言之,S.O.答案是這樣做.....
sql = "INSERT INTO TABLE_A(COL_A,COL_B) VALUES(%s, %s)"
a_cursor.execute(sql, (val1, val2))
我需要爲UPDATE做這個。我現在的方法是...
sql = "UPDATE table SET COL_A='R', COL_B='%s', COL_C='%s', COL_D='%s', COL_E='%s',COL_F='%s' WHERE COL_G='%s'" % (val1, val2, val3, val4, val5, val6)
cur.execute(sql)
我得到的錯誤是:1064語法錯誤。
問題是val5,它是一個包含撇號(誰知道還有什麼)的文本blob,我需要一種方法來在UPDATE之前轉義特殊字符。我偷偷地懷疑,我只需要做這個大規模的例行公事,我必須專門拼出人物,因爲我傾向於找到他們,但我想看看是否有其他人有這個問題。
我很欣賞任何指向正確方向的指針。
我結束了使用函數,而不是逃避單撇號。雖然我不會選擇我自己的答案。 –
在你的實際代碼中是否使用了所有這些花哨的引號,或者你是否在某處插入了編輯器? ''R''因爲這些引號無效,所以使用''R'.. –
不確定,但我只使用普通單引號。 –