gpt4 book ai didi

python - 我的程序没有更改 MySQL 数据库,但也没有出现错误

转载 作者:行者123 更新时间:2023-11-30 00:22:59 25 4
gpt4 key购买 nike

我编写了一个程序来抓取网站上的数据,将其放入多个数组中,迭代每个数组并将其放入查询中,然后执行查询。代码如下所示:

for count in range(391):
query = #long query
values = (doctor_names[count].encode("utf-8"), ...) #continues for about a dozen arrays
cur.execute(query, values)
cur.close()
db.close()

我运行该程序,除了一些截断警告之外,一切都很顺利。我在 MySQL Workbench 中打开数据库,没有任何变化。我尝试将值中的数组更改为常量字符串并运行它,但仍然没有任何改变。

然后,我创建了一个数组来保存最后执行的查询:sql_queries.append(cur._last_execulated) 并将它们推送到文本文件中:

fo = open("foo.txt", "wb")

for q in sql_queries:
fo.write(q)
fo.close()

这给了我一个包含多个查询的大文本文件。当我复制整个文本文件并在 MySQL Workbench 中创建一个新查询并执行它时,它会根据需要填充数据库。我的程序缺少什么?

最佳答案

如果您的表使用事务存储引擎(例如 Innodb),那么您需要调用 db.commit() 来存储事务:

for count in range(391):
query = #long query
values = (doctor_names[count].encode("utf-8"), ...)
cur.execute(query, values)
db.commit()
cur.close()
db.close()

请注意,对于事务数据库,除了 comitting您还有机会通过 rollingback 处理错误使用db.rollback()插入或更新。需要 db.commit 来完成事务。否则,

Closing a connection without committing the changes first will cause an implicit rollback to be performed.

关于python - 我的程序没有更改 MySQL 数据库,但也没有出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23082785/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com