使用 Python mysql.connector 成功插入后 MySQL 数据丢失

Mos*_*man 2 python mysql mysql-python python-3.x faker

我正在python mysql.connector用于一些数据库操作。我的数据库表结构是这样的:

在此处输入图片说明

我运行python scriptwithFaker Package(fake-factory 0.5.0)来填充这个数据库表。插入后,我运行查询以验证数据是否正确存储到表中。python 脚本显示所有插入的数据并完成exit code 0

但是当我通过phpMyadmin它浏览该表时,它没有显示那些插入的行。这些插入的数据在下次运行后不会保留。

这是我的代码:

import mysql.connector
from faker import Faker

fake = Faker()

cnx = mysql.connector.connect(user='root', password='001',
                              host='127.0.0.1',
                              database='smf')
cursor = cnx.cursor()

for i in range(1, 5):
    query = "insert into user " + "(userid, name) values("+ str(i) + ", '" + fake.name() + "')"
    cursor.execute(query)

query = "select * from user"
cursor.execute(query)

for (x) in cursor:
    print ("name = " + format(x))

cnx.close()
Run Code Online (Sandbox Code Playgroud)

mad*_*MDT 5

默认情况下Connector/Python打开autocommit了,和MySQL 5.5和更高版本使用的事务InnoDB表,所以有必要commit使用连接的更改commit()方法。您还可以使用 rollback() 方法回滚。

因此,cnx.commit()cursor.execute(query)解决您的问题之后放置命令。