python中的myql的execute()
execute(sql,args)方法注意事项:
1、execute方法中sql语句占位符是%s,与mysql中的?不同。
2、%s必须用括号包裹,如
insert into teacher(name) values (%s) 正确
insert into teacher(name) values %s 报错
3、args一般是list或tuple格式,如果只有一个参数,可直接传入
例子
while True:
# 使用Faker库生成假数据,将其转为字典格式,方便插入数据库
ctx = {
'username': fake.name(),
'password': fake.password(special_chars=False),
'address': fake.address()
}
#print(ctx)
sql = """
insert into user(%s) value(%s)""" % (','.join([k for k, v in ctx.items()]),
','.join(["%s" for k, v in ctx.items()])
)
print(sql)
try:
cursor.execute(sql, [v for k, v in ctx.items()])
print(sql)
self.conn.commit()
except:
print('失败')
self.conn.rollback()