我最近有一个python2.7x项目需要使用mysql.connector在一个查询中执行多个分号分隔的语句。这在Thispost.中有很好的解释。在
但是,我需要使用mysql.connector在我当前的项目中使用Twisted,这意味着使用Twisted的优秀企业.adbapi模块使我的新阻塞数据库连接不阻塞。在config = {"user": username, "password": password, "host": hostname,
"database": database_name, "raise_on_warnings": True}
cp = adbapi.ConnectionPool("mysql.connector", **config)
我的测试语句定义如下。我很抱歉,他们是一个轻浮的例子,但我知道我期待的结果,这应该足以证明我得到的结果,多个声明。在statement1 = "SELECT * FROM queue WHERE id = 27;"
statement2 = "SELECT * FROM order WHERE id = 1;"
statement_list = [statement1, statement2]
statements = " ".join(statement_list)
当我现在尝试执行ConnectionPool方法时,问题就出现了def _print_result(result):
if result:
print("this is a result")
print(result)
else:
print("no result")
reactor.stop()
d = cp.runQuery(statements, multi=True)
d.addBoth(_print_result)
结果如下:this is a result [Failure instance: Traceback: : No result set to fetch from.
如何使用Twisted的adbapi模块获得我知道的结果?在