我在使用 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')
我有最新稳定版本的tornado、tornado-mysql和mysql本身。
最佳答案
这些语句正在事务中运行;您必须在关闭连接之前提交事务(通过调用 conn.commit()
),或者在自动提交模式下运行(通过在创建连接时传递 autocommit=True
)联系)。
关于mysql - Tornado -mysql插入不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51592218/