2012-02-19 21 views
1

我正在嘗試使用Python編寫內容並編寫插入語句來創建SQL腳本。使用Python處理sql時的撇號(')幫助

我遇到過一個問題,當我讀的內容包含一個aprostrophe,我不知道該如何解決這個問題,因爲我不能簡單地用(')替換(')任何其他字符,因爲我是處理asciimathml(數學數據),我不能只改變我讀過的內容。

非常感謝!

+3

如果撇號對您來說是一個問題,您沒有*轉義*您的數據(在將它用作SQL查詢的一部分之前,您必須執行此操作)。有關輸入字符串的示例,請參閱http://xkcd.com/327/,該輸入字符串尤其...非常有趣...您可以處理非轉義字符。 – Borealid 2012-02-19 06:12:27

+0

快速搜索「python sql參數」找到[這個問題](http://stackoverflow.com/questions/3410455/how-do-i-use-sql-parameters-with-python) - 如果沒有(使用不同的sql庫?),然後進行搜索,包括您的庫的名稱和單詞「parameter」/ – 2012-02-19 06:31:11

回答

3

您可以使用其中一個escape_string函數(每個db包提供一個函數)來將單引號加倍或在其前加一個反斜槓。但是如果你使用參數替換,你會好得多。例如:

cursor.execute("INSERT INTO Test (column1, column2) VALUES (?, ?)", "It's all right", 45) 

這樣做,服務器將確保您的字符串正確轉義。