Python pymysql INSERT插入空值

2024-03-28 11:10:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在一个表中插入一些值,尽管正在创建行,但这些值没有被记录。这是我的代码:

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语句是如何解释的,有什么我不知道的吗?在


Tags: 字符串代码nameinfromtestforstring
1条回答
网友
1楼 · 发布于 2024-03-28 11:10:05

SQL语句似乎是一个简单的字符串,并且没有将name变量插入其中。在

也许你可以这样做:

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

我使用json.dumps(myVar)来转义特殊字符,例如引号等。。。这可能会破坏SQL insert语句。在

有时候,打印出SQL语句并尝试在客户机(例如MySQL Workbench)中运行它是很有帮助的,以便查看生成语法正确的语句所需的更改(如果有)。在

相关问题 更多 >