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 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题
  • ¥15 FPGA-SRIO初始化失败
  • ¥15 MapReduce实现倒排索引失败
  • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
  • ¥15 找一位技术过硬的游戏pj程序员
  • ¥15 matlab生成电测深三层曲线模型代码
  • ¥50 随机森林与房贷信用风险模型