无法使用Python的MySQLdb执行MySQL插入操作
这是我在StackOverflow上的第一个问题!
我现在正在编写一个Steam社区爬虫,这个爬虫会浏览Steam个人资料,并保存一些信息,比如拥有的游戏、Steam名字、朋友等等……但是当我尝试运行插入命令时,它就是不做任何事情。
if not self.check_user('games', id):
print "insert"
self.cursor.execute("INSERT INTO games (userid) VALUES(%s);" % id)
程序显示“插入”,但是执行命令既没有抛出异常,也没有把任何东西插入到数据库里。此外,如果出现异常,我也没有捕获到。例如,当我把查询改成“INSERT INTO games (useridd)”时,程序就会退出,我能看到异常。
这个应用程序是多线程的,但在执行之前已经获取了资源,所以我看不出有什么问题。
2 个回答
6
在命令的最后加上“COMMIT”
比如说:
cursor.execute("INSERT INTO games (userid) VALUES(%s);COMMIT;" % id)
通过添加第二行来设置自动提交
db = MySQLdb.connect(user='username', db=dbName,) # exmaple db.autocommit(1) # enable auto commit
在事务后面加上 commit()
db.commit()
5
你忘记了要提交事务。