python - MySQL 没有给出错误,但是没有一行被填充

标签 python mysql mysql-python

我尝试使用 MySQLdb 在数据库中填充一个表。没有报错,有一次警告

main.py:23: Warning: Data truncated for column 'other_id' at row 1
  cur.execute("INSERT INTO map VALUES(%s,%s)",(str(info[0]).replace('\n',''), str(info[2].replace('\n','').replace("'",""))))

所以我认为它工作正常。但是,当它完成并且我进行了行计数时,结果发现没有添加任何内容。为什么数据没有添加到数据库中?代码如下

def fillDatabase():
    db = MySQLdb.connect(host="127.0.0.1", 
                         user="root", 
                         passwd="", 
                         db="uniprot_map") 

    cur = db.cursor() 
    conversion_file = open('idmapping.dat')
    for line in conversion_file:
        info = line.split('\t')
        cur.execute("INSERT INTO map VALUES(%s,%s)",(str(info[0]).replace('\n',''), str(info[2].replace('\n','').replace("'",""))))

def test():
    db = MySQLdb.connect(host="127.0.0.1", 
                         user="root", 
                         passwd="", 
                         db="uniprot_map") 

    cur = db.cursor() 
    cur.execute("SELECT COUNT(*) FROM map")
    rows = cur.fetchall()

    for row in rows:
        print row

def main():
    fillDatabase()
    test()

最佳答案

您需要在添加所有条目后执行 db.commit()。即使更新不是事务性的,DBAPI 也会对每个更改强加一个隐式事务。

关于python - MySQL 没有给出错误,但是没有一行被填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13247957/

相关文章:

python - 通过字典进行复杂的迭代

php - Python 3 标准化 URL

php - PHP 数据库查询中的 Declare 函数等效项是什么?

python - 关于 python mysqldb TypeError

python - 实现双向链表的问题

python - Django//如何在模板中显示复杂的深度数据

mysql - 如何从 Android 应用程序写入远程数据库

mysql - 通过子查询同一个表创建 View

python - pip3 install mysql-python 失败,错误代码为 1 in/tmp/pip-install-4nev4id4/mysql-python/

Python 警告 : Truncated incorrect DOUBLE value