mysql - Tornado -mysql插入不工作

标签 mysql database tornado

我在使用 Tornado + Tornado-mysql 时遇到问题。

当我SELECT FROM表时,一切都按预期进行。 但是当我尝试 INSERT INTO 表时,没有任何反应。没有错误或任何内容,表中没有数据。

有趣的是,当我使用其他 mysql 客户端(例如 phpmyadmin)插入新行时,自动索引列会跳过一个数字并变为 +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')

我有最新稳定版本的tornadotornado-mysqlmysql本身。

最佳答案

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

关于mysql - Tornado -mysql插入不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51592218/

相关文章:

php - 是否可以通过 Codeigniter 运行一个长的 .sql 文件?

django - Tornado、Django、Websockets 和 session 同步

javascript - 如何在表单提交中实现线程

php - 插入函数 PHP mySQL

python - Tornado Restful 处理程序类

php - 我正在尝试将文件绑定(bind)到其他形式,并在 fileselect 中使验证为空文件

mysql - 创建搜索查询

mysql - 我如何解决此 SQL 的 "Using filesort"?

mysql - SQL 递归过滤结果,为每个匹配字段排除 3 个最近的记录

java - 从另一个 Spring Boot JPA 项目插入的数据库中读取数据