我想通過python將列表中的變量傳遞到mysql表中。我將在列表中排在最後,直到我收到關於特殊字符的錯誤。我正在使用的代碼行如下:使用python將特殊字符傳遞到mysql
new_value = "INSERT INTO favs VALUES (null, '%s', '%s', '%s', '%s')" % (item1,item2,item3,item4).
第一項是問題,因爲它有很多變量,其中包含着各種各樣的變量。 感謝
我想通過python將列表中的變量傳遞到mysql表中。我將在列表中排在最後,直到我收到關於特殊字符的錯誤。我正在使用的代碼行如下:使用python將特殊字符傳遞到mysql
new_value = "INSERT INTO favs VALUES (null, '%s', '%s', '%s', '%s')" % (item1,item2,item3,item4).
第一項是問題,因爲它有很多變量,其中包含着各種各樣的變量。 感謝
讓數據庫驅動程序擔心和參數查詢:
query = """
INSERT INTO
favs
VALUES
(null, %s, %s, %s, %s)
"""
cursor.execute(query, (item1, item2, item3, item4))
這樣做,謝謝。 – wizzer
除了上述的解決,在MySQL中的轉義字符是反引號即。 `。
所以,如果你寫了這個:
new_value = "INSERT INTO favs VALUES (null, '%s', '%s', '%s', '%s')" % (item1,item2,item3,item4)
它改成這樣:
new_value = "INSERT INTO favs VALUES (null, `%s`, `%s`, `%s`, `%s`)" % (item1,item2,item3,item4)
這就是快速的 「黑客」。更好的方法是如上所述參數化它;但爲了所有意圖和目的,這將起作用。接受的用法是在列名和表名上使用反引號。所以如果有人命名一個列鍵,這是一個保留關鍵字,你可以逃避它。
感謝您的信息。 – wizzer
是的,正如@alecxe所說,三個引號會做到這一點''「」SQL「」「'' – iSkore