我尝试在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退出。
我不知道我犯了哪个错误。有人可以帮忙吗?
非常感谢!
答案 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