我在使用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本身。
1条答案
按热度按时间gcmastyq1#
这些语句正在事务中运行;您必须提交事务(通过调用
conn.commit()
)在关闭连接之前,或在自动提交模式下运行(通过autocommit=True
创建连接时)。