首页 > 数据库技术 > 详细

navicat 使用 pymysql模块

时间:2019-05-16 20:30:20      阅读:168      评论:0      收藏:0      [点我收藏+]

新健库 ,新增字段+类型+约束

设计表:外键(自增)

新建查询

建立表模型 

技术分享图片创建表 及数据(根据模型看)
技术分享图片sql 练习题(根据模型看)

pymysql 模块

# import pymysql
# #连接
# conn = pymysql.connect(
#     host = ‘localhost‘,
#     port = 3306,
#     user = ‘root‘,
#     password = ‘‘,
#     database = ‘day41‘,
#     charset = ‘utf8‘
# )

# 游标
# cursor =conn.cursor() #执行完毕后返回的结果默认的以元组显示
# cursor =conn.cursor(pymysql.cursors.DictCursor) #将查询结果做成字典的格式

# pymysql操作数据库
# 执行sql 语句

# 语句在mysql里面执行
# res=cursor.execute("select * from class") #执行sql语句 返回sql查询成功的记录数目
# print(res)  #查询到的数据总条数


# print(cursor.fetchone()) # {‘cid‘: 1, ‘caption‘: ‘三年二班‘} 获取一条查询结果
# 类似于管道取一条少一条
# print(cursor.fetchone()) #{‘cid‘: 2, ‘caption‘: ‘三年三班‘} 获取一条查询结果
#
# # print(cursor.fetchone()) #{‘cid‘: 3, ‘caption‘: ‘一年二班‘} 获取一条查询结果
# cursor.scroll(1,‘relative‘) #相对移动,第三条数据被截取
#
# print(cursor.fetchall())  #[{‘cid‘: 4, ‘caption‘: ‘二年九班‘}]


# cursor.scroll(1,‘absolute‘) #绝对移动,参照开始位置
# print(cursor.fetchall()) #[{‘cid‘: 2, ‘caption‘: ‘三年三班‘}, {‘cid‘: 3, ‘caption‘: ‘一年二班‘}, {‘cid‘: 4, ‘caption‘: ‘二年九班‘}]

 

sql 注入问题不要手动去拼接查询的sql语句

username = input(">>>:").strip()
password = input(">>>:").strip()
sql = "select * from user where username=‘%s‘ and password=‘%s‘"%(username,password)

# 用户名正确
username >>>: jason -- jjsakfjjdkjjkjs
# 用户名密码都不对的情况
username >>>: xxx or 1=1 --asdjkdklqwjdjkjasdljad  #在sql里面 --代表注释掉 约束条件来判断的时候 1=1 is Ture
password >>>: ‘‘


正确注入

  username = input(">>>:").strip()
  password = input(">>>:").strip()

  
sql = "select * from user where username=%s and password=%s"

  
res=cursor.execute(sql,(username,password)) #sql会自己去拼接

 

 

增 改查

import pymysql

conn = pymysql.connect(host=localhost,
                       port=3306,
                       user=root,
                       password=‘‘,
                       database=day41, #哪个库下面
                       charset=utf8,
                       autocommit=True  # 插入数据之后 确保无误后才会真正修改到数据库 在这里声明的话每次操作都会直接修改到数据库
                       )
cursor = conn.cursor(pymysql.cursors.DictCursor)
username = input(》》》:)
password = input(》》》: )

#插入数据
# sql = "insert into userinfo(name,password) values (%s,%s)"  # 必须让mysql自己拼接 不然有可能自己拼接的在mysql里面执行的时候约束条件
# 有一个判断就直接进去了数据就不安全了
# res = cursor.execute(sql,(username,password))
# conn.commit() #确保数据无误后,commit之后才会将数据真正修改到数据库

# if res:
    # print(cursor.fetchall())
    # pass
# else:
#     print(‘用户名或密码错误!‘)


#查询验证
# sql=‘select * from userinfo where name =%s and password=%s ‘
# res=cursor.execute(sql,(username,password))
# conn.commit()
# if res:
#     pass
# else:
#     print(‘密码或用户名错误‘)


#更新数据
# sql = "update userinfo set name=%s where id =%s"
#
# res=cursor.execute(sql,(username,password))
# if res:
#     pass
# else:
#     print(‘error‘)

 

navicat 使用 pymysql模块

原文:https://www.cnblogs.com/lakei/p/10877739.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!