我试图在一个表中插入一些值,尽管正在创建行,但这些值没有被记录。这是我的代码:
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")
改成VALUES("Test String")
,它就可以工作了,添加了30行(我想要的),所有行的名称都是:“teststring”。在
然而,当我放入name
变量时,也会添加行,但列值是空的。我放入字符串的列是VARCHAR
。在Python字符串变量的情况下,SQL语句是如何解释的,有什么我不知道的吗?在
SQL语句似乎是一个简单的字符串,并且没有将
name
变量插入其中。在也许你可以这样做:
我使用
json.dumps(myVar)
来转义特殊字符,例如引号等。。。这可能会破坏SQL insert语句。在有时候,打印出SQL语句并尝试在客户机(例如MySQL Workbench)中运行它是很有帮助的,以便查看生成语法正确的语句所需的更改(如果有)。在
相关问题 更多 >
编程相关推荐