tornado mysql插入不工作

wfauudbj  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(418)

我在使用tornado+tornado mysql时遇到了一个问题。
当我 SELECT FROM 桌上,一切正常。但当我试着 INSERT INTO 桌上,什么都没发生。表中没有任何错误和数据。
有趣的是,当我使用其他mysql客户机(比如phpmyadmin)插入一个新行时,auto index列会跳过一个数字,变成+2而不是+1。看起来数据已经被tornado mysql插入并删除了。
以下是数据库连接的代码:

@coroutine
def TDB(query):
    conn = yield tornado_mysql.connect(host=conf.host,
                                port=conf.port,
                                user=conf.username,
                                passwd=conf.password,
                                db=conf.database,
                                charset=conf.charset,
                                cursorclass=tornado_mysql.cursors.DictCursor)
    cur = conn.cursor()
    yield cur.execute(query)
    cur.close()
    conn.close()
    return cur._rows

下面是发送 insert / delete 对上述函数的查询:

class TestHandler(tornado.web.RequestHandler):
    async def get(self):
        t = await TDB('SELECT * FROM `users`') # this works fine, as expected.
        for each in t:
            print(each)
        await TDB('INSERT INTO `users` (`organization`,`username`)\
                    VALUES("PouyaCode", "pouya")') # This however doesn't work.
        self.write('hello')

我有最新稳定版本的tornado,tornado mysql和mysql本身。

gcmastyq

gcmastyq1#

这些语句正在事务中运行;您必须提交事务(通过调用 conn.commit() )在关闭连接之前,或在自动提交模式下运行(通过 autocommit=True 创建连接时)。

相关问题