当前位置: 首页 > news >正文

pymysql

参数(会导致SQL注入)
 


import pymysql# 创建数据库连接
conn = pymysql.connect(user = "root",password= "root",host= "127.0.0.1",port= 3306,database= "test"
)# 创建游标对象
cur = conn.cursor(cursor=pymysql.cursors.DictCursor)name = input("请输入用户名")
password = input("请输入密码")
# id = input("请输入id")# 准备sql# 参数传递 方式一
#sql = "select * from t_user where name = '"+name+"' and  password = '"+password+"'"
#sql = "select * from t_user where id = "+id
#sql = "select * from t_user where id = "+id+" and name = '"+name+"'"# 参数传递 方式二
sql = "select * from t_user where name = '%s' and password = '%s'"%(name,password)
print(sql)# 执行sql语句,返回结果总条数
resultCount = cur.execute(sql)#查询数据内容
result = cur.fetchall()print(resultCount)
print(result)if resultCount:print("登录成功")
else:print("用户名或密码错误")# 关闭游标
cur.close()
# 关闭连接
conn.close()

防止SQL注入:
 


import pymysql# 创建数据库连接
conn = pymysql.connect(user = "root",password= "root",host= "127.0.0.1",port= 3306,database= "test"
)# 创建游标对象
cur = conn.cursor(cursor=pymysql.cursors.DictCursor)name = input("请输入用户名")
password = input("请输入密码")
# id = input("请输入id")# 准备sql# 参数传递 方式二
# sql = "select * from t_user where name = %s and password = %s"
# 执行sql语句,返回结果总条数
# resultCount = cur.execute(sql,(name,password))# sql = "select * from t_user where name = %s and password = %s"
# 执行sql语句,返回结果总条数
# resultCount = cur.execute(sql,[name,password])sql = "select * from t_user where name = %(name)s and password = %(pass)s"
# 执行sql语句,返回结果总条数
resultCount = cur.execute(sql,{"name":name,"pass":password})print(sql)
#查询所有数据内容
result = cur.fetchall()print(result)if resultCount:print("登录成功")
else:print("用户名或密码错误")# 关闭游标
cur.close()
# 关闭连接
conn.close()

DQL:
 


import pymysql# 创建数据库连接
conn = pymysql.connect(user = "root",password= "root",host= "127.0.0.1",port= 3306,database= "test"
)# 创建游标对象
cur = conn.cursor(cursor=pymysql.cursors.DictCursor)# 准备sql
sql = "select * from t_user"
# 执行sql语句,返回结果总条数
resultCount = cur.execute(sql)#查询所有数据内容
# result = cur.fetchall()# 按照顺序查询某一条内容
# result = cur.fetchone()
# result2 = cur.fetchone()
# result3 = cur.fetchone()
# result4 = cur.fetchone()
# print(result)
# print(result2)
# print(result3)
# print(result4)# 查询指定数量的内容
result = cur.fetchmany(5)
print(result)# 关闭游标
cur.close()
# 关闭连接
conn.close()

DML:


import pymysql# 创建数据库连接
conn = pymysql.connect(user = "root",password= "root",host= "127.0.0.1",port= 3306,database= "test"
)# 创建游标对象
cur = conn.cursor(cursor=pymysql.cursors.DictCursor)# name = input("请输入用户名")
# password = input("请输入密码")
# address = input("请输入地址")# 准备增加sql
# sql = "insert into t_user values (null,%s,%s,%s)"
# # 执行sql语句,返回结果总条数
# resultCount = cur.execute(sql,[name,password,address])# 准备删除sql
# sql = "delete from t_user where id = %s"
# # # 执行sql语句,返回结果总条数
#
# resultCount = cur.execute(sql,[5])# 准备修改sql
sql = "update t_user set password = %s,name = %s,address = %s where id = %s"
# # 执行sql语句,返回结果总条数resultCount = cur.execute(sql,["789789","王五","某某某开发公司",3])
print(resultCount)if resultCount:print("修改成功")
else:print("添加失败")conn.commit()# 关闭游标
cur.close()
# 关闭连接
conn.close()


 

http://www.dtcms.com/a/165680.html

相关文章:

  • GitHub修炼法则:第一次提交代码教学(Liunx系统)
  • Web应用开发指南
  • mysql 配置文件中的[client]、[mysqld]、[mysqldump]和[mysql]区块的作用区别
  • AIGC 大模型微调实战:中小企业如何用自有数据训练专属 AI 模型?
  • 无水印短视频素材下载网站有哪些?十个高清无水印视频素材网站分享
  • Spring AOP概念及其实现
  • 计算机图形学:(二)MVP变换示例
  • centos升级glibc
  • 树莓派智能摄像头实战指南:基于TensorFlow Lite的端到端AI部署
  • 如何写好Verilog状态机
  • SV 仿真的常识
  • SQLServer多版本兼容Java方案和数据采集
  • 【网工第6版】第6章 网络安全③
  • 基于标注数据的情感分析模型研究
  • 【数据库原理及安全实验】实验五 数据库备份与恢复
  • 126. 单词接龙 II
  • LoRA、QLoRA、LoRA+、LongRA、DoRA、MaLoRA、GaLore
  • 7.计算机网络相关术语
  • oceanbase设置密码
  • 从零开始学Python游戏编程47-二维数组1
  • 汽车OTA在线升级法规分析
  • 【每日八股】复习 Redis Day4:线程模型
  • 现代前端工具链深度解析:从包管理到构建工具的完整指南
  • 汽车免拆诊断案例 | 2015款奔驰C200L车发动机起动延迟
  • 【鸿蒙HarmonyOS】一文详解华为的服务卡片
  • 普通IT的股票交易成长史--20250430晚
  • 江西省电价新政发布!微电网源网荷储充一体化平台重塑企业能源格局!
  • 数据库与大数据技术教程资料
  • 表征(Representations)、嵌入(Embeddings)及潜空间(Latent space)
  • node爬虫包 pup-crawler,超简单易用