【发布时间】:2015-07-14 00:19:32
【问题描述】:
我正在使用python mysql.connector 进行一些数据库操作。我的数据库表结构是这样的:
我运行python script 和Faker 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()
【问题讨论】:
-
cursor.execute(query)命令后是否需要cnx.commit()
-
知道了。需要
cnx.commit() -
当返回的名称值包含单引号时,会导致 INSERT 查询出错。 (SQL 文本中包含的潜在不安全值必须进行转义。更好的是,使用带有绑定占位符的准备好的语句。)
标签: python mysql python-3.x mysql-python faker