Leslie-Lin 2022-11-04 17:04 采纳率: 100%
浏览 25
已结题

我这个这么做对吗,好像运行不出来

我这个这么做对吗,好像运行不出来
刚学pymysql的,请问一下该怎么改

img

import pymysql

# 建立链接
connDb = pymysql.connect(
    host = 'localhost',
    port = 3306,
    user = 'root',
    password = '12345678',
    db = 'demo',
    charset='utf8'
)

# 游标
cur = connDb.cursor()

# 执行sql
class executeSQL() :
    def __int__(self,id,name,username,password):
        self.id = id
        self.name = name
        self.username = username
        self.password = password

    # 增加
    def Add(self):
        id = int (input("请输入你要添加的id:"))
        name = input("请输入你要添加的姓名:")
        username = input("请输入需要添加用户名:")
        password = input("请输入需要添加的密码:")
        sql = "insert into user  valuer(%s,%s,%s,%s)"
        date=(id,name,username,password)
        cur.execute(sql.date)#数据提交
        connDb.commit()#数据更新
    #删除
    def delete(self):
        id=input("请输入你需要删除的用户id:")
        sql="delete from user where id=%s"
        cur.execute(sql,(id,))
        print("执行删除命令,剩余如下")
        sql2 = "select * form user"
        cur.execute(sql2)
        data = cur.fetchall()
        for item in data:
            print(item)
        connDb.commit()
    # 修改
    def update(self):
        no = input("请输入你要修改的用户id")
        sql1 = "select *form user where id=%s"
        cur.execute(sql1,(no,))
        date = cur.fetchall()
        print(f"用户id为{no}的信息如下:\n",date)
        print("请输入新的信息!")
        sname = input("请输入你要添加的姓名:")
        susername = input("请输入用户名:")
        spassword = input("请输入密码:")
        sql2 = "update user set name=%s, username=%s, password=%s,where id=%s"
        sdate =(sname,susername,spassword,no)
        cur.execute(sql2,sdate)
        sql3="select * from user where id=%s"
        cur.execute(sql3,(no,))
        newdate=cur.fetchone()
        print("修改后用户的信息如下:\n",newdate)
        connDb.commit()

# 查询
class query():
    def inquery(self):
        id = input("请输入需要查询的用户id:")
        sql1 = "select * from user where id=%s"
        cur.execute(sql1,(id,))
        date = cur.fetchone()
        print(f"用户id为{id}的用户信息如下:\n",date)
        connDb.commit()
    # 显示所有用户
    def allin(self):
        print("所有用户信息如下:")
        sql1 = "select * from user"
        cur.execute(sql1)
        date=cur.fetchall()
        print(date)


# 关闭
cur.close()
connDb.close()

import pymysql
from Dbhelper import executeSQL as a
from Dbhelper import query as a


# 定于功能函数
def info_print():
    print("请选择功能----------")
    print("1、添加用户")
    print("2、删除用户")
    print("3、修改用户")
    print("4、查询用户")
    print("5、显示所有用户")
    print("6、退出")
    print('-' * 20)


def main():
    with pymysql.connect(
            host='localhost',
            port=3306,
            user='root',
            password='12345678',
            db='demo',
            charset='utf8') as conn:
        cur = conn.cursor()
        while True:
            info_print()
            user_num = int(input("请输入功能序号:"))
            if user_num == 1:
                print("添加")
                a.Add(cur)
            elif user_num == 2:
                print("删除")
                a.delete(cur)
            elif user_num == 3:
                print("修改")
                a.update(cur)
            elif user_num == 4:
                print("查询")
                a.inquery(cur)
            elif user_num == 5:
                print("显示所有用户信息")
                a.allin(cur)
            elif user_num == 6:
                print("退出系统")
                exit_flag = input("确定要退出吗?yes or no  ")
                if exit_flag == 'yes':
                    break
    main()


  • 写回答

1条回答 默认 最新

  • 二九筒 2022-11-04 18:10
    关注

    大致定义是这样的。你那个是定义的类不是定义函数```python

    import pymysql
    class DbHelper():
    def init(self):
    pass

    def connDb(self):
        connDb = pymysql.connect(
            host='localhost',
            port=3306,
            user='root',
            password='12345678',
            db='demo',
            charset='utf8')
        return connDb.cursor()
    
    
    def excuteSql(self,sql):
        cur = self.connDb()
        cur.execute(sql)
        cur.commit()
        print(cur.fetchone())
        cur.close()
    
    def querry(self,sql):
        cur = self.connDb()
        cur.execute(sql)
        cur.commit()
        print(cur.fetchall())
        cur.close()
    

    ```

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月9日
  • 已采纳回答 11月4日
  • 创建了问题 11月4日

悬赏问题

  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)