会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132360个问题

import pymysql

class MyDb:
    config={
        "host":"localhost",
        "user":"root",
        "password":"123456",
        "db":"music_project",
        "charset":"utf8"
    }

    def __init__(self):
        self.connection = pymysql.connect(**DbUtils.config)
        self.cursor = self.connection.cursor()
    
    def close(self):
        if self.cursor:
            self.cursor.close()
        if self.connection:
            self.connection.close()

    #插入,修改,删除
    def exeDML(self,sql,*args):
        try:
            #执行sql
            count = self.cursor.execute(sql,args)
            id = self.connection.insert_id()
            #提交事务
            self.connection.commit()
            return id
        except Exception as e:
            print(e)
            if self.connection:
                self.connection.rollback()
        finally:
            self.close()

    #查询一条
    def queryone(self,sql,*args):
        try:
            #执行sql
            self.cursor.execute(sql,args)
            #获取结果集
            return self.cursor.fetchone()
        except Exception as e:
            print(e)
        finally:
            self.close()

    #查询多条
    def queryall(self,sql,*args):
        try:
            #执行sql
            self.cursor.execute(sql,args)
            #获取结果集
            return self.cursor.fetchall()    
        except Exception as e:
            print(e)
        finally:
            self.close()

if __name__ == "__main__":
    dbutils = MyDb()
    #测试exeDML
    # sql = "insert into emp(empno,ename,sal) values(%s,%s,%s)"
    # count = dbutils.exeDML(sql,6666,'阿巴阿巴',9999)
    # print(count)

    # sql = "select * from emp where empno=%s"
    # count = dbutils.queryone(sql,7788)
    # print(count)

    sql = "select * from t_music"
    emps = dbutils.queryall(sql)
    for i in emps:
        print(i)

图片.png

老师我也报了和评论一样的错误,可是我对照了一下资料的代码,发现好像一样啊,为什么会出现这种情况啊

Python 全系列/第五阶段:数据库编程/项目-音乐播放器-旧 468楼
Python 全系列/第五阶段:数据库编程/mysql的使用 469楼
Python 全系列/第五阶段:数据库编程/mysql的使用 470楼
Python 全系列/第五阶段:数据库编程/项目-音乐播放器-旧 474楼
Python 全系列/第五阶段:数据库编程/mysql的使用 475楼

from dbUtil import Mydb
class MyService:

    def __init__(self):
        self.user = None
    
    def login(self,uname,password):
        sql = 'select * from t_user where uname=%s and password=%s'
        user = Mydb().query_one(sql,uname,password)
        if user:
            self.user = user
            return True
        else:
            return False
    
    def add_music(self,files):
        for f in files:
            start = f.rfind(r'/')+1
            end = f.rfind('.mp3')
            music_name = f[start:end]
            # 根据歌名查询数据库是否有该首歌
            sql = 'select * from t_music where music_name=%s'
            music = Mydb().query_one(sql,music_name)
            if music:
                # 查询关联表t_ist 该用户是否添加了这首歌
                sql = 'select * from t_list where mid=%s and uid=%s'
                t_list = Mydb().query_one(sql,music[0],self.user[0])
                if not t_list:
                    sql = 'insert into t_list(mid,uid) values(%s,%s)'
                    Mydb().exeDML(sql,music[0],self.user[0])
            else:
                # 将音乐保存到t_music表中
                sql = 'insert into t_music(music_name,path) values(%s,%s)'
                mid = Mydb().exeDML(sql,music_name,f)

                # 用户选择的音乐保存到t_list
                sql = 'insert into t_list(mid,uid) values(%s,%s)'
                Mydb().exeDML(sql,mid,self.user[0])
    
    # 查询用户的音乐列表
    def findListByUser(self):
        sql = "SELECT m.music_name FROM t_music m,t_list t where m.id=t.mid AND t.uid=%s"
        return Mydb().query_all(sql,self.user[0])

image.png

老师,我在显示列表的时候总是显示这个错误,说我t.uid=%s错误,但是我直接把%s换成1的话就可以显示列表,不知道是什么问题,求老师解答

Python 全系列/第五阶段:数据库编程/项目-音乐播放器-旧 477楼
Python 全系列/第五阶段:数据库编程/mysql的使用 478楼
Python 全系列/第五阶段:数据库编程/mysql介绍与环境安装 480楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637