求助 入门级简单地操作数据库的小问题

2014-12-24 17:35:41 +08:00
 jookr
循环更新数据库
while里的第一次代码执行正常 到了第二次循环就会在 注释那行报错

为什么到第二次循环就报错了呢 查了一下百度是不是关于游标什么,怎么解决呢

谢谢各位

# -*- coding: utf-8 -*-
import hashlib,MySQLdb



conn = MySQLdb.connect('localhost','root','123456','test',charset='utf8')
cursor = conn.cursor()


query = "select count(*) as count from `shujuku` where `puid`=''"
cursor.execute(query)
get_data = cursor.fetchone();
total_data = int(get_data[0]);
print 'total:',total_data;

while(total_data >= 1):
print total_data;
query = '';
query = "select `uid` from `shujuku` where `puid`='' order by `id` asc limit 10"
#print query;
cursor.execute(query);#为什么第二次循环 在这里报错呢?
conn.commit();

list_data = cursor.fetchall();


query3 = '';
for i in list_data:
uid = str(i[0]);
nuid = int(uid) - 1000000;
nuid = str(nuid);
md5 = hashlib.md5(nuid).hexdigest();
#print(md5)
puid = md5[0:2]+'/'+md5[-2:]+'/'+md5[2:-2];
query3 = query3 +"update `shujuku` set `puid`='"+puid+"' where `uid`='"+uid+"';";

cursor.execute(query3);
#conn.commit();

total_data = total_data - 10;

print 'done';
cursor.close()
conn.close()
2632 次点击
所在节点    Python
5 条回复
liprais
2014-12-24 17:56:02 +08:00
报错信息是啥......你这样问问题问一半就是想帮你都帮不了啊.....
jookr
2014-12-24 18:23:34 +08:00
@liprais 报错信息如下

Traceback (most recent call last):
File "E:\python\tt.py", line 21, in <module>
cursor.execute(query);
File "D:\Python27\lib\site-packages\MySQLdb\cursors.py", line 202, in execute
self.errorhandler(self, exc, value)
File "D:\Python27\lib\site-packages\MySQLdb\connections.py", line 36, in defau
lterrorhandler
raise errorclass, errorvalue
_mysql_exceptions.ProgrammingError: (2014, "Commands out of sync; you can't run
this command now")
lixia625
2014-12-24 18:49:37 +08:00
要每次cursor close?
lcqtdwj
2014-12-24 19:18:33 +08:00
commit去掉试试,默认是自动提交,不需要你手动commit
lcqtdwj
2014-12-24 19:57:07 +08:00
@lcqtdwj Mysqldb默认是关的,搞错了

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

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

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

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

© 2021 V2EX