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 滑块验证码拖动问题悬赏
  • ¥15 Wanted but not invoked:Actually, there were zero interactions with this moc
  • ¥20 怎么驱动tb6612
  • ¥15 Arcgis 3D效果点要素
  • ¥15 在执行yolo训练脚本的时候,没有报错,在扫描val这一步后就推出执行了
  • ¥15 delphi开发的WEBSERVER改用HTTPS协议
  • ¥15 pic16f877A单片机的计数器proteus仿真失效
  • ¥100 调查 Vitis AI 中验证 .xmodel 量化后的正确性
  • ¥30 codelite全屏时file、setting那一行消失了
  • ¥15 gazebo-rviz教程