为什么pymysql执行SQL语句后提示成功,但没有实际操作数据库?
短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
原因:
pymysql在连接数据库的时候会有一个参数autocommit,表示执行完SQL语句是否自动提交到真正的数据库,默认为False,不自动提交,所以执行SQL语句后提示成功,但实际没有操作数据库。
解决:
方法一:创建数据库连接对象时设置autocommit=True
1 message = {
2 "host":host,
3 "user":user,
4 "password":db_pwd,
5 "database":db_name,
6 "autocommit":True
7 }
8 db = pymysql.connect(**message)
9 return db
方法二:在每次执行SQL后,显示提交
1 sql = "insert into users(id,name,age) values (1,"Amy",13)"
2 cursor.execute(sql) #cursor为游标
3 db.commit() #db为数据库连接对象
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341