首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Raspberry Pi上的Python/MySQLdb故障

问Raspberry Pi上的Python/MySQLdb故障
EN

Stack Overflow用户
提问于 2012-09-22 21:29:39
回答 1查看 2K关注 0票数 0

我在raspberry pi上运行python/mysqldb时遇到了一些麻烦。这是一个相当简单的脚本,所以我不知道我错过了什么。“选择*来自.”运行时没有问题,但我似乎无法用新值更新表。脚本运行时没有抛出错误,但是当我使用ctrl时,它会给出如下内容:

异常_mysql_exceptions.ProgrammingError:(2014年,“命令不同步;现在不能运行此命令”)在绑定方法DictCursor.__del of MySQLdb.cursors.DictCursor object 0x19dfd90中

这是我的剧本:

代码语言:javascript
复制
    dhost = "localhost"
    duser = "root"
    dname = "rpi"
    dpass = "datPassword"

    import MySQLdb

    try:
        con = MySQLdb.connect(dhost,duser,dpass,dname);
        cur = con.cursor(MySQLdb.cursors.DictCursor)

    except MySQLdb.Error, e:
        print "Error %d: %s" % (e.args[0],e.args[1])
        sys.exit(1)


    def websiteToSensor():
        cur.execute("SELECT * FROM homeauto WHERE changedby = 'website'")
        rows = cur.fetchall()
        for row in rows:
            cur.execute("UPDATE homeauto SET changedby = 'script' WHERE id = '%s'",(row["id"]))
        return

    while True:
        websiteToSensor()

有人知道为什么我的表没有更新吗?谢谢!

SOLUTION__***编辑:*编辑

感谢Martijn,下面是我的新websiteToSensor()代码:

代码语言:javascript
复制
    def websiteToSensor():
        cur = con.cursor(MySQLdb.cursors.DictCursor)
        cur.execute("SELECT * FROM homeauto WHERE changedby = 'website'")
        rows = cur.fetchall()
        num = int(cur.rowcount)
        if num > 0:
            for row in rows:
                cur.execute("UPDATE homeauto SET changedby = 'script' WHERE id = '%s'",(row["id"]))
            con.commit()
            cur.close()
            con.commit()
        else:
            cur.close()
            con.commit()
        return
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-22 21:38:29

尝试提交您的更改:

代码语言:javascript
复制
def websiteToSensor():
    cur.execute("SELECT * FROM homeauto WHERE changedby = 'website'")
    rows = cur.fetchall()
    for row in rows:
        cur.execute("UPDATE homeauto SET changedby = 'script' WHERE id = '%s'",(row["id"]))
    con.commit()
    return
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12547855

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档