Python MySQL更新语句不起作用

时间:2017-09-10 09:48:38

标签: python mysql sql-update

我尝试在python 2.7中执行一个简单的更新语句,但它根本不会工作。我希望有人能告诉我这个错误:

import MySQLdb
import datetime

db = MySQLdb.connect(host="localhost",    # your host, usually localhost
                     user="root",         # your username
                     passwd="",  # your password
                     db="******")        # name of the data base

cur = db.cursor()

cur.execute("SELECT * FROM data")

for row in cur.fetchall():
    id_row = str(row[0])
    date = str(row[1])
    new_date = date[:-2]
    new_date += "00"
    cur.execute("UPDATE data SET date={0} WHERE ID={1}".format(new_date, id_row))

db.close()

脚本应该将日期作为数据库中的unix时间戳切断  最后两个数字,用00替换它们并更新数据库中的行。 替换数字的代码有效,但更新过程没有。 它没有显示错误消息,并以代码0退出。

我不知道我犯了哪个错误。有人可以帮忙吗?

非常感谢!

2 个答案:

答案 0 :(得分:1)

羞辱我!

错误是缺少db.commit()。

感谢您的提示! :)

答案 1 :(得分:1)

         import pymysql
         import datetime

         db = pymysql.connect(host="localhost",    # your host, usually localhost
                 user="root",         # your username
                 passwd="",  # your password
                 db="******")        # name of the data base
         cur.execute("SELECT * FROM data")

         cur = db.cursor()
         cur.execute("UPDATE data SET date={0} WHERE ID={1}".format(new_date, id_row))
         db.commit()
         ##### pymysql is module
         ##sudo apt-get install python-pip  
         ####sudo pip install PyMySQL   
相关问题