【问题标题】:MySQLdb executemany not adding dataMySQLdb executemany不添加数据
【发布时间】:2012-09-29 22:51:51
【问题描述】:

我正在尝试使用 MySQLdb executemany 命令将数据添加到表(test_copy)中,如下所示:

db = mdb.connect(host="127.0.0.1",port=3306,user='XXXX',db="test")
cursor = db.cursor()
COM = "insert into test_copy (Short_Model) VALUES (%s)"
VALS = ['213','3232','fd','sadad']
cursor.executemany(COM,VALS)
cursor.close

注意:表名 = test_copy,列名 = Short_Model

问题是命令运行没有任何错误,但是当我检查表时没有添加数据。

抱歉,如果这是一个简单的问题,但在过去的几个小时里让我发疯了。

谢谢。

【问题讨论】:

    标签: python mysql mysql-python


    【解决方案1】:

    谢谢@Jon Clements 和@Abhishek Mishra - 你让我恢复了理智。以下是感兴趣的人的最终解决方案:

    db = mdb.connect(host="127.0.0.1",port=3306,user='xxxx',db="test")
    cursor = db.cursor()
    COM = "insert into test_copy (Short_Model) VALUES (%s)"
    VALS = ['213','3232','fd','sadad']
    cursor.executemany(COM,VALS)
    db.commit()
    

    【讨论】:

      【解决方案2】:

      cursor.close 应该是 cursor.close(),但您通常希望 cursor.commit() 只是为了确保您的更改反映在您的数据库中。

      【讨论】:

        【解决方案3】:

        需要一个commit() 调用来完成数据库中的事情。文档没有说明executemany 是否自动提交更改。同时打开自动提交,cursor.autocommit(True) 可能会有所帮助。

        【讨论】:

        • 根据我的经验,executemany 会自动提交,尽管我不希望这样做。
        猜你喜欢
        • 2017-01-25
        • 2015-07-02
        • 2012-10-28
        • 2011-06-20
        • 1970-01-01
        • 1970-01-01
        • 2012-02-28
        • 1970-01-01
        • 2018-08-25
        相关资源
        最近更新 更多