簡體   English   中英

Python pymysql INSERT INTO插入空值

[英]Python pymysql INSERT INTO inserting empty values

我正在嘗試在表中插入一些值,盡管正在創建行,但未記錄這些值。 這是我的代碼:

for i in range(2,6):
    for team in ul[i]:
        name = team.string #string from html element
        print(name) #this works just fine, and prints the desired name
        cur.execute("INSERT INTO teams (Name) VALUES(name)")
conn.commit()

現在,如果我改用VALUES("Test String") ,它可以正常工作,添加30行(我想要的),並且所有行的名稱均為:“ Test String”。

但是,當我輸入name變量時,行也會被添加,但是列值是空的。 我要輸入字符串的列是VARCHAR 關於Python字符串變量如何解釋SQL語​​句,我是否不知道?

看來SQL語句是一個簡單的字符串,並且沒有將name變量插入其中。

也許您可以執行以下操作:

sql = """INSERT INTO teams (Name) VALUES({0})""".format(json.dumps(name))
cur.execute(sql)

我使用json.dumps(myVar)來轉義特殊字符,例如引號等,這可能會破壞SQL插入語句。

有時,打印出SQL語句並嘗試在客戶端(例如MySQL Workbench)中運行它很有幫助,以便查看生成語法正確的語句需要進行哪些更改(如果有)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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