用python创建对数据库进行增删改查的函数(加入了错误处理)

第一次的感觉不是很完善,现在加入了错误处理,后续可能还会改进,请多指教。
import pymysql                #导入mysql数据库包

def UI():                     #定义函数名为UI的界面函数
    a = input('1查询  2、修改 3、退出(输入1or2or3选择)>>')      #将输入的值转换为int型
    if a.isnumeric():
        if int(a) == 1:
            sql_select()          #a的值为1的时候执行查询函数
        elif int(a) == 2:
            sql_change()          #a的值为2的时候执行修改函数
        elif int(a) == 3:
            exit()
            print('已退出!')       #a的值为3的时候退出
        else:
            print('您的输入有误,请重新输入。')
    else:
        print('您的输入有误,请重新输入。')


def con():          #连接函数
    global ip,port,username,pwd,db,charset
    try:            #异常处理
        ip = input('请输入主机地址:')          #输入数据库地址
        port = int(input('请输入端口号:'))    #输入端口号
        username = input('请输入用户名:')      #输入用户名
        pwd = input('请输入密码:')             #输入密码
        db = input('请输入库名:')            #输入库名
        charset = input('请输入默认字符集规则:')  #输入字符集规则
        conn = pymysql.connect(host=ip, port=port, user=username, password=pwd,database=db,charset=charset)     #创建数据库连接对象
        cur = conn.cursor()     #通过数据库连接对象获取游标
        return conn,cur
    except:         #异常处理
        print('以上输入的信息有误,请重新输入')
        con()

def sql_select():            #创建查询函数
    conn, cur = con()       #调用连接函数,直接获取数据库连接对象和游标
    while True:             #while循环体
        sql = input('请输入操作:')   #输入sql语句
        try:
            cur.execute(sql)            #执行sql语句
        except:  # 异常处理
            print('sql语句错误,请重新输入。')
            continue
        else:
            rest = cur.fetchall()  # 返回查询结果,fetchall()返回所有结果 、fetmany()返回多条结果、fetone()返回一条结果
            # 此处也可以用循环if条件判断来指定输出的结果数量
            for select in rest:         #for循环遍历查询出的每一条结果,结果会以元组的形式返还出来
                print(*select)          #解开元组,打印出结果
            a = input('1、继续操作  2、返回  3、退出(输入1or2选择)>>')     #用if判断接下来的操作
            if int(a) == 1:
                continue
            elif int(a) == 2:
                UI()
            else:
                cur.close()             #关闭游标对象
                conn.close()            #关闭数据库连接
                break                   #跳出循环






def sql_change():           #创建修改函数(可执行数据库的增删改)
    conn,cur = con()        #调用连接函数,直接获取数据库连接对象和游标
    while True:             #while循环体
        try:
            sql = input('请输入操作:')       #输入sql语句
            cur.execute(sql)                #执行sql语句
            conn.commit()                   #提交事务
        except:  # 异常处理
            print('sql语句错误,请重新输入。')
            continue
        else:
            a = input('1、继续操作  2、返回  3、退出(输入1or2选择)>>')         #用if判断接下来的操作
            if int(a) == 1:
                continue
            elif int(a) == 2:
                UI()
            else:
                cur.close()         #关闭游标对象
                conn.close()        #关闭数据库连接
                break               #跳出循环




if __name__ == '__main__':          #主函数
       UI()                    #运行界面函数

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是一个使用Python进行MySQL数据库增删改查操作的示例代码: ```python import mysql.connector # 连接到MySQL数据库 cnx = mysql.connector.connect( host='localhost', user='username', password='password', database='database_name' ) # 创建游标对象 cursor = cnx.cursor() # 插入数据 insert_query = "INSERT INTO table_name (column1, column2) VALUES (%s, %s)" values = ('value1', 'value2') cursor.execute(insert_query, values) cnx.commit() # 查询数据 select_query = "SELECT * FROM table_name" cursor.execute(select_query) result = cursor.fetchall() for row in result: print(row) # 更新数据 update_query = "UPDATE table_name SET column1 = %s WHERE column2 = %s" values = ('new_value', 'value2') cursor.execute(update_query, values) cnx.commit() # 删除数据 delete_query = "DELETE FROM table_name WHERE column1 = %s" value = ('value1', ) cursor.execute(delete_query, value) cnx.commit() # 关闭游标和数据库连接 cursor.close() cnx.close() ``` 在上面的示例中,我们首先使用`mysql.connector.connect()`函数连接到MySQL数据库,并提供主机、用户名、密码和数据库名称等连接参数。 然后,我们使用`cursor()`方法创建一个游标对象,该游标对象用于执行SQL查询和插入等操作。 接下来,我们执行SQL插入操作。在插入操作中,我们使用占位符`%s`来代替实际的值,并将值以元组的形式传递给`execute()`方法。最后,我们使用`commit()`方法提交更改。 然后,我们执行SQL查询操作,并使用`fetchall()`方法获取所有查询结果。然后,我们可以使用循环遍历结果并进行处理。 然后,我们执行SQL更新操作。在更新操作中,我们使用占位符`%s`来代替实际的值,并将值以元组的形式传递给`execute()`方法。最后,我们使用`commit()`方法提交更改。 最后,我们执行SQL删除操作。在删除操作中,我们使用占位符`%s`来代替实际的值,并将值以元组的形式传递给`execute()`方法。最后,我们使用`commit()`方法提交更改。 请确保替换示例代码中的主机、用户名、密码、数据库名称、表名、列名和值等信息,以适应你的实际情况。 注意:在使用MySQL连接器时,建议进行错误处理和异常处理,以增强程序的健壮性和安全性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值