首页 > 解决方案 > 我不知道为什么 curs.execute 不起作用

问题描述

我正在研究mysql与python(pycharm)的连接我对curs.execute()何时工作以及何时不工作有疑问......在我的代码中我写了关于不工作点的评论

import pymysql

try:
    conn = pymysql.connect(host='localhost', user='root', password='1234', db='university')
    conn.set_charset('utf8')

    curs = conn.cursor(pymysql.cursors.DictCursor) #Dictionary cursor 생성
    # curs = conn.cursor()
    print("Connected to MySQL")

    sql = "SELECT sno, midterm, final from db_score where midterm >= 20 and final >= 20 order by sno"
    # sql = "select* from db_score"
    curs.execute(sql)
    #this point not work :(


except Exception as e:
    print(str(e))

finally:
    if conn:
        curs.close()
        conn.close()
        print("MySql connection is closed")

并且 fetchall() 没有工作:(\

import pandas as pd
import pymysql

xl_file = 'db_score.xlsx'
df = pd.read_excel(xl_file)
tp = list(df.itertuples(index=False, name=None))

# ('sno', 'attendance', 'homework', 'discussion', 'midterm', 'final', 'score', 'grade')

try:
    conn = pymysql.connect(host='localhost', user='root', password='1234', db='university')
    conn.set_charset('utf8')
    #curs = conn.cursor(pymysql.cursors.DictCursor)
    curs = conn.cursor()
    print("Connected to MySQL")

    sql = "INSERT INTO db_score VALUES (%s, %s, %s, %s, %s, %s, %s, %s)"

    for i in range(0, len(df.index)):
        # print('hi')
        curs.execute(sql, tp[i])
    #why work i dont know because other part is not working

    # sql2 = "SELECT* from db_score"
    # curs.execute(sql2)
    # try execute, but not work

    records = curs.fetchall()

    for row in records:
        print("why didn't work")
        print(row)
    #print not work :(

    conn.commit()

except Exception as e:
    print(str(e))
    conn.rollback()

finally:
    if conn:
        curs.close()
        conn.close()
        print("MySql connection is closed")

请评论为什么工作,为什么不工作...感谢您观看数据库连接如此困难:(

标签: pythonmysql

解决方案


推荐阅读