使用twisted.enterprise.adbapi从简单的SELECT中获取数据

时间:2011-12-20 16:21:37

标签: mysql twisted

我可以使用以下内容进行mySQL数据插入,

from twisted.enterprise.adbapi import ConnectionPool
.
.
self.factory.pool.runOperation ('insert into table ....')

但是,不知何故无法弄清楚如何从对adSQL的adbapi调用进行简单的选择,如下所示,

self.factory.pool.runOperation('SELECT id FROM table WHERE name = (%s)',customer)

如何从此partilcar调用中检索id值?我用普通的python工作得很好,但不知何故真的对扭曲的框架进行了模糊处理。

感谢。

1 个答案:

答案 0 :(得分:7)

runOperation不适用于 SELECT 语句。它适用于不产生行的语句,例如 INSERT DELETE

runQuery支持生成行的语句。例如:

pool = ...
d = pool.runQuery("SELECT id FROM table WHERE name = (%s)", (customer,))
def gotRows(rows):
    print 'The user id is', rows
def queryError(reason):
    print 'Problem with the query:', reason
d.addCallbacks(gotRows, queryError)

在此示例中,dDeferred的实例。如果您之前没有遇到过Deferreds,那么您肯定想要了解它们:http://twistedmatrix.com/documents/current/core/howto/defer.html