簡體   English   中英

在mysql / python中轉義整個字符串

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM