输入学号,修改数据库中的记录 def alterdb(): welcome="""------欢迎使用数据库修改数据功能------""" print(welcome) choice=input("请输入要修改的学号:") info=into() hel=opendb() hel[1].execute("""update tongxinlu set username=?,password=?,address=?,telnum=?where usernum="""+choice,(info[0],info[1],info[2],info[3],info[4])) hel[1].commit() print("--------恭喜您修改数据成功--------") showalldb() hel[1].close() #7.按学号查询数据库中的记录 def searchdb(): welcome="""---------欢迎使用数据库查询数据功能---------""" print(welcome) searchchoice=input("请输入要查询的姓名:") hel=opendb() cur=hel[1].cursor() cur.execute("select*from tongxinlu where username='"+searchchoice+"'") res=cur.fetchall() for line in res: for h in line: print(h) print() cur.close() hel[1].close() #8.是否继续子函数 def conti(): choice=input("请输入您的选项(y/n或Y/N ):") if choice=='y' or choice=='Y': flag=True else: flag=False return flag
时间: 2023-06-26 18:05:34 浏览: 87
这段代码看起来是一个基于 Python 的数据库操作程序,主要包括以下几个功能:
1. 打开数据库连接函数 `opendb()`
2. 关闭数据库连接函数 `closedb()`
3. 显示所有记录函数 `showalldb()`
4. 添加记录函数 `adddb()`
5. 删除记录函数 `deldb()`
6. 修改记录函数 `alterdb()`
7. 按学号查询记录函数 `searchdb()`
8. 是否继续子函数 `conti()`
其中,函数 `opendb()` 打开数据库连接,返回数据库连接对象和游标对象;函数 `closedb()` 关闭数据库连接;函数 `showalldb()` 查询并打印出所有记录;函数 `adddb()` 向数据库中添加一条新记录;函数 `deldb()` 删除指定学号的记录;函数 `alterdb()` 修改指定学号的记录;函数 `searchdb()` 按姓名查询记录并打印出查询结果;函数 `conti()` 用于判断是否继续执行程序。
需要注意的是,在修改记录和按姓名查询记录时,SQL 语句中的变量未加引号,可能会导致语法错误。正确的写法应该是:
```python
hel[1].execute("""update tongxinlu set username=?,password=?,address=?,telnum=? where usernum='{}'""".format(choice), (info[0],info[1],info[2],info[3],info[4]))
cur.execute("select * from tongxinlu where username='{}'".format(searchchoice))
```
另外,在执行 SQL 语句时,最好使用参数化查询,避免 SQL 注入攻击。如下所示:
```python
hel[1].execute("update tongxinlu set username=?, password=?, address=?, telnum=? where usernum=?", (info[0], info[1], info[2], info[3], choice))
cur.execute("select * from tongxinlu where username=?", (searchchoice,))
```
阅读全文