Python,SSCursor的pymysql类封装不能按预期工作

时间:2016-12-16 23:12:03

标签: python class pymysql

以下作品:

<g class="gbar">
    <rect x="0" width="20" y="142" height="8" fill="teal"></rect>
    <text x="0" y="137">8</text>
</g>
<g class="gbar">
    <rect x="40" width="20" y="136" height="14" fill="teal"></rect>
    <text x="40" y="131">14</text>
</g>
<g class="gbar">
    <rect x="80" width="20" y="89" height="61" fill="teal"></rect>
    <text x="80" y="84">61</text>
</g>
//etc...

但是当我用SSCursor替换DictCursor时,aryRes包含None,我得到:

class DB():
    def __init__(self, host, user, password, db):
        self.conn =  pymysql.connect(
            host = host,
            user = user,
            passwd = password,
            charset = 'utf8',
            cursorclass = pymysql.cursors.DictCursor,
            db = db
        )

        self.cur = self.conn.cursor()

    def execute(self, sql):
        self.cur.execute(sql)

    def fetchone(self):
        return self.cur.fetchone()

cf = DB("localhost", "user", "pass", "db")
cf.execute("SELECT Count(*) FROM Table")
aryRes = cf.fetchone()

我尝试了以下所有组合:

warnings.warn("Previous unbuffered result was left incomplete")

我还确认以下内容正确返回(未封装):

import pymysql
import pymysql.cursors
from pymysql import cursors

我错过了哪些会使封装的SSCursors工作? 我是Python的新手,所以请随意纠正你需要注意的任何事情。

忘了提...我正在使用Python 2.7.12

1 个答案:

答案 0 :(得分:1)

我认为你有问题,因为你只获取一个结果,而有其他结果。在fetchone之后,尝试运行fetchall以清除缓冲区。