一、代码如下:
#!/user/bin/env/python3
# -*- coding:utf-8 -*-
#使用pymysql来创建数据库,并对数据库表进行操作
import pymysql
def connectdb():
print("正在连接到mysql数据库服务器....")
# 打开数据库连接
# 用户名:root, 密码:,创建数据库,并在my_test数据库中创建表Student
mydb = pymysql.connect("localhost","root","","my_test")
print("mysql数据库服务器已连接!")
mycursor = mydb.cursor()
def createtable(mydb):
# 使用cursor()方法获取操作游标
mycursor = mydb.cursor()
# mycursor = pymysql.connect.
# 如果存在student表,则先删除
mycursor.execute("DROP TABLE IF EXISTS Student")
sql = """CREATE TABLE Student (
ID varchar(10) NOT NULL,
Name varchar(8),
Grade INT)"""
# 创建student表
mycursor.execute(sql)
def insertdb(mydb):
mycursor = mydb.cursor
# SQL 插入语句
sql1 = """INSERT INTO Student VALUES
("001","CZQ",70),
("002","LHQ",80),
("003","MQ",90),
("004","WH",80),
("005","HP",70),
("006","YF",66),
("007","CSH",100)"""
try:
#执行sql1语句
mycursor.execute(sql1)
# 若成功执行,则提交
mydb.commit()
except:
print("插入数据失败,请检查数据!")
mydb.rollback()
def deletedb(mydb):
mycursor = mydb.cursor()
sql1 = "DELETE FROM TABLE Student WHERE Grade='%d'"%(100)
try:
mycursor.execute(sql1)
mydb.commit()
except:
print("删除数据时发生错误,未能删除!")
mydb.rollback()
def querydb(mydb):
mycursor = mydb.cursor()
sql1 = "SELECT * FROM Student"
try:
mycursor.execute(sql1)
myresults = mycursor.fetchall()
for row in myresults:
ID = row[0]
Name = row[1]
Grade = row[2]
# 打印结果
print("ID:%s,Name:%s,Grade:%d"%(ID,Name,Grade))
except:
print("错误:不能够fetch数据!")
def updatedb(mydb):
mycursor = mydb.cursor()
sql1 = "UPDATE Student SET Grade = Grade+3 WHERE ID='%s'"%("003")
try:
# 执行sql语句
mycursor.execute(sql1)
mydb.commit()
except:
print("数据更新失败,请检查!")
mydb.rollback()
def closedb(mydb):
mydb.close
def main():
mydb = connectdb() #连接mysql数据库
createtable(mydb) #创建表
insertdb(mydb) #插入数据
print("\n插入数据后:")
querydb(mydb)
deletedb(mydb) #删除数据
print("\n删除数据后:")
querydb(mydb)
updatedb(mydb) #更新数据后
print("\n更新数据后:")
querydb(mydb)
closedb(mydb)
if __name__ == '__main__':
main()
二、运行后报错,提示如下:
"D:\Program Files\Python\Python38\python.exe" D:/PycharmProjects/数据库操作/使用pymysql.py
正在连接到mysql数据库服务器....
mysql数据库服务器已连接!
Traceback (most recent call last):
File "D:/PycharmProjects/数据库操作/使用pymysql.py", line 111, in <module>
main()
File "D:/PycharmProjects/数据库操作/使用pymysql.py", line 94, in main
createtable(mydb) #创建表
File "D:/PycharmProjects/数据库操作/使用pymysql.py", line 17, in createtable
mycursor = mydb.cursor()
AttributeError: 'NoneType' object has no attribute 'cursor'
Process finished with exit code 1
请老师解答,谢谢。