[英]Escaping a whole string in mysql/python
因此,我正在編寫一個python腳本,用於更新mysql表中的值。 我遇到了一個小問題,發現我要更新到表中的一個值中有一個單引號“'”
這是我正在使用的python代碼,
cur3.execute("UPDATE recon SET Name = '%s' WHERE id = '%s'" % (row[1], row[0]))
在獲得類似這樣的名稱之前,效果很好
John's Computer
我試着做
cur3.execute("UPDATE recon SET Name = \'%s\' WHERE id = '%s'" % (row[1], row[0]))
但這似乎也不起作用。 知道如何完全擺脫row [1]中的內容嗎?
不要使用字符串格式構造SQL查詢。 假設您正在使用mysqldb庫; 語法:
cur3.execute("UPDATE recon SET Name = '%s' WHERE id = '%s'", (row[1], row[0]))
是您要尋找的。 請注意,您將元組作為第二個參數傳遞給.execute()
,而不是使用%
運算符進行字符串格式化。
您確實應該這樣做:
cur3.execute("UPDATE recon SET Name = %s WHERE id = %s", (row[1], row[0]))
與以下內容有很大不同:
cur3.execute("UPDATE recon SET Name = '%s' WHERE id = '%s'" % (row[1], row[0]))
最上面的例子將被轉義,其他則不會。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.