bob952 2018-10-21 10:22 采纳率: 100%
浏览 870
已采纳

求助python操作mysql问题,运行过一段时间,就不显示好象没有执行一样。程序代码如下。

python同步微信群信息并且将所要信息采集到mysql数据库。程序运行一段时间,有可能是一个早上,也有可能是几分钟。即不报错,也没打印信息。。非常奇怪

我原来以为是mysql的8小时链接限制,所以我把数据库做到本地和远程数据库分别做了测试,是一样的,过段时间就会不显示,象哑了一样。

关键代码如下,打印过save_info_mysql中所有参数,不过程序是不是正常还是没有显示的时候,参数都是正确传入无误的,所以错的关键是以下save_info_mysql函数。还求大神指点

保存数据到数据库

def save_info_mysql(d, village, price, area, telphone, telphone2):
stime = datetime.datetime.fromtimestamp(d['CreateTime'])
mycursor = mdb.cursor()
Content = sub_telphone(d)
sql1 = "select * from log where content = '%s'" % (Content)
print(sql1) #这句打印可以执行,并且显示
result = mycursor.execute(sql1)
print(result) #这句程序开始运行的时候会显示0或1,运行过一段时间就不打印了,好象是没有执行这句,包括后面的IF else都是没有执行的。就象程序运行在这里就中断了,然后重新开始循环一样。
if result:
print(Content + "数据已经存在")

return
else:
sql = '''INSERT INTO log (wxname,content,stime,village,price,area,telphone6,telphone11,istj) VALUES ('%s','%s','%s','%s','%s','%s','%s','%s','%s')''' % (
d['ActualNickName'], Content, str(stime), village, price, area, telphone, telphone2, 0)
mycursor.execute(sql)
mdb.commit()
group = itchat.get_chatrooms(update=True)
for g in range(0,len(group)):
if group[g]['NickName'] in groups:
print(group[g]['NickName'])
itchat.send(Content, group[g]['UserName'])
print(Content + '写入数据')
time.sleep(1)

  • 写回答

4条回答 默认 最新

  • xingjianfengaa 2018-10-22 01:43
    关注

    你这个函数 是单线程还是多线程?是不是“sql1 = "select * from log where content = '%s'" % (Content)
    print(sql1) #这句打印可以执行,并且显示
    result = mycursor.execute(sql1) 这一句执行的时候 卡住了?” 比如你多个线程同时执行这一句可能会有问题 ,如果 这样需要加锁

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 Odoo17操作下面代码的模块时出现没有'读取'来访问
  • ¥50 .net core 并发调用接口问题
  • ¥15 网上各种方法试过了,pip还是无法使用
  • ¥15 用verilog实现tanh函数和softplus函数
  • ¥15 Hadoop集群部署启动Hadoop时碰到问题
  • ¥15 求京东批量付款能替代天诚
  • ¥15 slaris 系统断电后,重新开机后一直自动重启
  • ¥15 QTableWidget重绘程序崩溃
  • ¥15 谁能帮我看看这拒稿理由啥意思啊阿啊
  • ¥15 关于vue2中methods使用call修改this指向的问题