我试图在表格中插入一些值,虽然正在创建行,但是没有记录这些值。这是我的代码:
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行(我想要的是),所有这些都是名称:"测试字符串"。
然而,当我输入name
变量时,也会添加行,但列值为空。将字符串放入的列I VARCHAR
。在Python字符串变量的情况下,我是否知道如何解释SQL语句?
答案 0 :(得分:1)
似乎SQL语句是一个简单的字符串,并且没有插入name
变量。
也许你可以这样做:
sql = """INSERT INTO teams (Name) VALUES({0})""".format(json.dumps(name))
cur.execute(sql)
我使用json.dumps(myVar)
来转义特殊字符,例如引号等......可能会破坏SQL插入语句。
有时打印出SQL语句并尝试在客户端(例如MySQL Workbench)中运行它是有帮助的,以便查看生成语法正确语句所需的更改(如果有)。