Python_MySql語句插入中內(nèi)容同時包含單引號和雙引號的解決辦法

在python中調(diào)用MySQLdb模塊插入數(shù)據(jù)信息,假設(shè)待輸入信息data為:

其中同時包含了單引號和雙引號

一般插入語句為

sql = "insert into tb (my_str) values('%s')" % (data)
cursor.execute(sql)</pre>

其中values('%s')中的%s外面也要有引號,這個引號與data中的引號匹配導(dǎo)致了內(nèi)容錯誤

解決辦法一: MySQLdb.escape_string()

在MySQLdb模塊中自帶針對mysql的轉(zhuǎn)義函數(shù)escape_string(),直接調(diào)用即可

sql = "insert into tb (my_str) values('%s')" % (MySQLdb.escape_string(data))
cursor.execute(sql)

解決辦法二:轉(zhuǎn)義字符

將data變?yōu)橄旅娴男问?再插入數(shù)據(jù)庫就正確了

Hello\'World\"!

具體在python中的轉(zhuǎn)義函數(shù)如下:

def transferContent(self, content): 
            if content is None: return None else:
            string = ""
            for c in content: if c == '"':
                    string += '\\\"'
                elif c == "'":
                    string += "\\\'"
                elif c == "\\":
                    string += "\\\\"
                else:
                    string += c return string</pre>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容