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