pymysql
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pymysql相关的知识,希望对你有一定的参考价值。
一,IDE工具介绍
生产环境还是推荐使用mysql命令行,但为了方便我们测试,可以使用IDE工具
下载链接:https://pan.baidu.com/s/1bpo5mqj
掌握: #1. 测试+链接数据库 #2. 新建库 #3. 新建表,新增字段+类型+约束 #4. 设计表:外键 #5. 新建查询 #6. 备份库/表 #注意: 批量加注释:ctrl+?键 批量去注释:ctrl+shift+?键
二,pymysql模块
先安装 pip3 install pymysql 才能导入这个模块 import pymysql conn=pymysql.connect( host=‘127.0.0.1‘, port=3306, user=‘root‘, password=‘123‘, database=‘db42‘, charset=‘utf8‘ ) cursor=conn.cursor(pymysql.cursors.DictCursor) # rows=cursor.execute(‘show tables;‘) rows=cursor.execute(‘select * from class;‘) print(rows) # # print(cursor.fetchone()) # print(cursor.fetchmany(2)) # print(cursor.fetchone()) # print(cursor.fetchall()) # # print(cursor.fetchall()) # cursor.scroll(3,‘absolute‘) # print(cursor.fetchone()) # # print(cursor.fetchone()) # print(cursor.fetchone()) # cursor.scroll(1,‘relative‘) # print(cursor.fetchone()) # # cursor.close() # conn.close() import pymysql #pip3 install pymysql conn=pymysql.connect( host=‘127.0.0.1‘, port=3306, user=‘root‘, password=‘123‘, database=‘db42‘, charset=‘utf8‘ ) cursor=conn.cursor(pymysql.cursors.DictCursor) inp_user=input(‘用户名>>:‘).strip() #inp_user="" inp_pwd=input(‘密码>>:‘).strip() #inp_pwd="" sql="select * from user where name=‘%s‘ and password=‘%s‘" %(inp_user,inp_pwd) print(sql) rows=cursor.execute(sql) if rows: print(‘登录成功‘) else: print(‘登录失败‘) cursor.close() conn.close() 直接改变了sql 绕过了密码和用户名 #在服务器端防止sql注入问题:不要自己拼接字符串,让pymysql模块去拼接 import pymysql #pip3 install pymysql conn=pymysql.connect( host=‘127.0.0.1‘, port=3306, user=‘root‘, password=‘123‘, database=‘db42‘, charset=‘utf8‘ ) cursor=conn.cursor(pymysql.cursors.DictCursor) inp_user=input(‘用户名>>:‘).strip() #inp_user="" inp_pwd=input(‘密码>>:‘).strip() #inp_pwd="" sql="select * from user where name=%s and password=%s" print(sql) rows=cursor.execute(sql,(inp_user,inp_pwd)) if rows: print(‘登录成功‘) else: print(‘登录失败‘) cursor.close() conn.close()
三,、增、删、改:conn.commit()
import pymysql #pip3 install pymysql conn=pymysql.connect( host=‘127.0.0.1‘, port=3306, user=‘root‘, password=‘123‘, database=‘db42‘, charset=‘utf8‘ ) cursor=conn.cursor(pymysql.cursors.DictCursor) # sql=‘insert into user(username,password) values(%s,%s)‘ # rows=cursor.execute(sql,(‘EGON‘,‘123456‘)) # print(rows) # print(cursor.lastrowid) # rows=cursor.execute(‘update user set username="alexSB" where id=2‘) # print(rows) # 一次插入多行记录 sql=‘insert into user(username,password) values(%s,%s)‘ rows=cursor.executemany(sql,[(‘lwz‘,‘123‘),(‘evia‘,‘455‘),(‘lsd‘,‘333‘)]) print(rows) print(cursor.lastrowid) conn.commit() # 只有commit提交才会完成真正的修改 cursor.close() conn.close()
四,查:fetchone,fetchmany,fetchall
fetchone(查询单条) fetchmany(查询多条) fetchall(查询所有) import pymysql conn=pymysql.connect( host=‘127.0.0.1‘, port=3306, user=‘root‘, password=‘123‘, database=‘db42‘, charset=‘utf8‘ ) cursor=conn.cursor(pymysql.cursors.DictCursor) # rows=cursor.execute(‘show tables;‘) rows=cursor.execute(‘select * from class;‘) print(rows) # # print(cursor.fetchone()) # print(cursor.fetchmany(2)) # print(cursor.fetchone()) # print(cursor.fetchall()) # # print(cursor.fetchall()) # cursor.scroll(3,‘absolute‘) # print(cursor.fetchone()) # # print(cursor.fetchone()) # print(cursor.fetchone()) # cursor.scroll(1,‘relative‘) # print(cursor.fetchone()) # # cursor.close() # conn.close()
五,获取最后
------查看表中最后一行的iD import pymysql conn=pymysql.connect(host=‘localhost‘,user=‘root‘,password=‘123456‘, database=‘day47‘,charset=‘utf8‘) cursor=conn.cursor() sql=‘insert into user1(user,password) values(%s,%s);‘ rows=cursor.execute(sql,(‘alex‘,‘123‘)) # rows=cursor.executemany(sql,[(‘yuanhao‘,‘123‘),(‘laowu‘,‘123‘),(‘kgf‘,‘12323‘)]) conn.commit() print(cursor.lastrowid) #查看表中最后一行的iD cursor.close() conn.close()
以上是关于pymysql的主要内容,如果未能解决你的问题,请参考以下文章
运行 tkinter+pymysql 脚本时出现 pymysql.err.ProgrammingError