我有一个连接到本地MySQL数据库的python脚本.我知道它连接正确,因为我可以做到这一点并获得正确的结果:
cursor.execute("SELECT*FROM reel")
但是当我尝试做任何插入语句时,它什么都不做.没有错误消息,没有例外.当我从sqlyog检查时,数据库中没有显示任何内容.这就是我的代码:
self.cursor.executemany("INSERT INTO reel(etime,etext)VALUES(%s,%s)",tups)
其中tups是一个看起来像这样的元组列表('0000-00-00 00:00:00','text').没有错误显示,如果我将生成的SQL查询复制粘贴到sqlyog中,则可以正常工作.我已经尝试生成查询并对其执行cursor.execute()并且没有错误也没有结果.谁知道我做错了什么?
你需要做一个self.cursor.commit()后self.cursor.executemany("INSERT INTO reel (etime,etext) VALUES (%s,%s)", tups)
从1.2.0开始,默认情况下,MySQLdb根据DB-API标准(PEP-249)的要求禁用自动提交.如果您使用InnoDB表或某些其他类型的事务表类型,则需要在关闭连接之前执行connection.commit(),否则您的更改都不会写入数据库.
相反,您也可以使用connection.rollback()来丢弃自上次提交以来所做的任何更改.
重要说明:某些SQL语句(特别是像CREATE TABLE这样的DDL语句)是非事务性的,因此无法回滚,并且它们会导致挂起的事务提交.
| 归档时间: |
|
| 查看次数: |
995 次 |
| 最近记录: |