求助 pymysql 的正确使用方法

2016-01-10 18:57:12 +08:00
 HanSonJ

本人初学 python ,希望有高人相助

我通过 SQL 查询出来的数据,对这个游标进行遍历,对每个遍历的数据做一个 SQL 的操作,然后很神奇的执行完 SQL 然后 for 循环就结束了,我把 SQL 执行的调用语句注释掉是可以全部遍历的,不知大家有没有这方面的经验

伪代码如下:

ms = mysql.Mysql()
  result = ms.get_all_data()#全部游标数据
  for data in result:
      print("begin")
      try:
         ...
      sql_insert()
    except ...:
      ....
    print("continue")

在这种情况下,所有输出都正常输出,但只输出一次,没有进行遍历

假若把 sql_insert()的方法注释掉,两个输出都会一直遍历正常输出

sql_insert() 这个方法的大致内容如下

sql = "..."
self.cursor.excute(sql, (...))
self.conn.commit()
3074 次点击
所在节点    Python
6 条回复
iewgnaw
2016-01-10 20:30:34 +08:00
获取和更新用了同一个游标吧
HanSonJ
2016-01-11 00:21:01 +08:00
@iewgnaw 对!后来发现忘了发上来了,这么少信息你都能知道也算屌,犯 2 了
billgreen1
2016-01-11 14:09:56 +08:00
问一下你们的 sql 语句都是 raw sql 嘛?
HanSonJ
2016-01-11 15:40:10 +08:00
@billgreen1 我因为刚学,所以写的都是原生的,今天找了 ORM ,慢慢一步来,正常都不会写 raw sql 吧
jamiesun
2016-01-12 09:53:17 +08:00
self.cursor 不是正确的姿势
HanSonJ
2016-01-12 10:08:33 +08:00
@jamiesun 因为每次都要定义这个游标所以我干脆写成了全局变量了 (掩脸逃

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/249719

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX