python pymysql模块
pymysql 是一个纯 Python 实现的 MySQL 客户端操作库今天说一下用pymysql实现对数据库的基本增删改查
首先需要连接数据库
import pymysql conn=pymysql.connect(host='127.0.0.1',user='root',password='123',database='ku1',charset='utf8') 打开数据库连接 cursor=conn.cursor(cursor=pymysql.cursors.DictCursor) 创建一个数据库连接对象cursor=pymysql.cursors.DictCursor表示返回的数据用字典表示列明和数据的对应关系 sql='select * from user' sql操作命令 cursor.execute(sql) 用execute方法执行sql命令 ps:executemany可以执行多条命令 res=cursor.fetchone() 使用fetchone获得一条返回结果,ps:fetchall可以以列表的形式拿到返回的所有结果 print(res)
在使用过程中sql操作指令大都是拼接出来的会有sql注入的风险在这里我们同过转义的方法来规避
import pymysql # 连接mysql服务器 username = input('username:') pwd = input('password:') ### 对用户输入的值进行转义 conn = pymysql.connect(host='localhost', user='root', password='123',database='ku', charset='utf8') cursor = conn.cursor(cursor=pymysql.cursors.DictCursor) sql = "select * from student where sname = %s and sid = %s" cursor.execute(sql,(username, pwd))
把重要信息赋值的地方放在execute里面是防止sql注入的方法之一 res = cursor.fetchone() print(res) if res: print('登录成功') else: print('登录失败') cursor.close() conn.close()
对数据进行增删改之后需要提交数据后对数据库的操作才会生效
import random import pymysql,time # 连接mysql服务器 conn = pymysql.connect(host='localhost', user='root', password='123',database='db1', charset='utf8') cursor = conn.cursor(cursor=pymysql.cursors.DictCursor) # sql = "delete from t7 where id=%s" sql = "insert into t12 (name, email) values (%s, %s)" 数据库的操作指令和数据库端的完全一样 插入多条 data = [] for i in range(3000000): num = random.randrange(0,3000000) data.append(('root'+str(num), 'root'+str(num)+'@qq.com')) cursor.executemany(sql, data) conn.commit() 提交操作 cursor.close() conn.close()关闭数据库连接