无法使用Python的MySQLdb执行MySQL插入操作

3 投票
2 回答
829 浏览
提问于 2025-04-16 21:43

这是我在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
  1. 在命令的最后加上“COMMIT”

    比如说:

    cursor.execute("INSERT INTO games (userid) VALUES(%s);COMMIT;" % id)
    
  2. 通过添加第二行来设置自动提交

    db = MySQLdb.connect(user='username', db=dbName,) # exmaple
    db.autocommit(1) # enable auto commit
    
  3. 在事务后面加上 commit()

    db.commit()
    
5

你忘记了要提交事务

撰写回答