小编典典

为什么“插入”功能不使用MySQLdb添加行?

sql

我正在尝试弄清楚如何在Python中使用MySQLdb库(我对这两个都是最好的新手)。

我在这里遵循代码,特别是:

cursor = conn.cursor ()
cursor.execute ("DROP TABLE IF EXISTS animal")
cursor.execute ("""
   CREATE TABLE animal
   (
     name     CHAR(40),
     category CHAR(40)
   )
 """)
cursor.execute ("""
   INSERT INTO animal (name, category)
   VALUES
     ('snake', 'reptile'),
     ('frog', 'amphibian'),
     ('tuna', 'fish'),
     ('racoon', 'mammal')
 """)
print "Number of rows inserted: %d" % cursor.rowcount
cursor.close ()
conn.close ()

我可以更改此代码以创建或删除表,但实际上无法提交它INSERT。它row.count按预期返回值(即使更改表中的值,它也会更改为我期望的值)。

每次我使用PHPMyAdmin查看数据库时,都不会进行插入。如何将提交INSERT到数据库?


阅读 180

收藏
2021-03-23

共1个答案

小编典典

您会忘记commit数据更改,默认情况下自动提交是禁用的:

   cursor.close ()
   conn.commit ()
   conn.close ()

用Python DB-
API
文档引用编写MySQL脚本的方法

“连接对象的commit()方法将提交当前事务中所有未完成的更改,以使其在数据库中永久存在。在DB-
API中,连接以禁用的自动提交模式开始,因此必须在断开连接之前调用commit(),否则更改可能会丢失。”

2021-03-23