python - 插入数据库,单个插入有效,循环插入怎么就不行了?
天蓬老师
天蓬老师 2017-04-17 13:43:48
[Python讨论组]
def insert_into_bet(data):
    len_team_data = int(len(data)/7)
    conn=mdb.connect(host='localhost',user='root',passwd='oracle',db='betdb',port=3306)
    cur = conn.cursor()
    sql = "insert into bet(id,lea,gmd,hos,gue,hos_sco,gue_sco) values(%s,%s,%s,%s,%s,%s,%s)"
    for l in range(len_team_data):
        for item in data[7*l:7*l+1]:
            cur.executemany(sql,data[7*l:7*l+7])
            l+=1
    cur.close()
    conn.commit()
    conn.close()

if __name__=='__main__':
#     download_live_urls()
    now = datetime.datetime.now()
    now_date = now.strftime('%Y-%m-%d')
    pages_path = '/root/bet/teamUrls/%s' % now_date
    for page in os.listdir(pages_path):
        page_path = '/root/bet/teamUrls/%s/%s' % (now_date,page)
        #问题出在这里!!!
        insert_into_bet(from_page_to_data(page_path))
我尝试取消main里面的for循环,然后执行insert_into_bet这个,是可以插入数据库的,但是一旦加入for循环以后,就无法插入数据库了,不知道什么原因,求指点~
天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(3)
巴扎黑

建议查看日志有没有报错,mysql配置打开global_log,看看sql执行情况

伊谢尔伦
for
executemany

仔细看executemany的用法

伊谢尔伦
def insert_into_bet(data):
len_team_data = int(len(data)/7)
conn=mdb.connect(host='localhost',user='root',passwd='oracle',db='betdb',port=3306)
cur = conn.cursor()
sql = "insert into bet(id,lea,gmd,hos,gue,hos_sco,gue_sco) values(%s,%s,%s,%s,%s,%s,%s)"
for l in range(len_team_data):
    for item in data[7*l:7*l+1]:
        cur.executemany(sql,data[7*l:7*l+7])
        l+=1
cur.close()
conn.commit()
conn.close()

顺序颠倒了~~
cur.close()
conn.commit()

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号