MySQL-pymysql模块

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL-pymysql模块相关的知识,希望对你有一定的参考价值。

Navicat软件

安装

 

下载地址:
https://www.cr173.com/soft/126934.html
    

navicat能够充当多个数据库的客户端


navicat图形化界面有时候反应速度较慢 你可以选择刷新或者关闭当前窗口再次打开即可

当你有一些需求该软件无法满足的时候 你就自己动手写sql

提示

"""
1 mysql是不区分大小写的
    验证码忽略大小写
        内部统一转大写或者小写比较即可
            upper
            lower

2 MySQL建议所有的关键字写大写

3 MySQL中的注释 有两种
    --
    #

4 在navicat中如何快速的注释和解注释
    ctrl + ?  加注释
    ctrl + ?  基于上述操作再来一次就是解开注释
    如果你的navicat版本不一致还有可能是
    ctrl + shift + ?解开注释
"""

pymysql模块

"""
支持python代码操作数据库MySQL
"""
pip3 install pymysql

sql注入

"""
利用一些语法的特性 书写一些特点的语句实现固定的语法
MySQL利用的是MySQL的注释语法
select * from user where name=‘jason‘ -- jhsadklsajdkla‘ and password=‘‘

select * from user where name=‘xxx‘ or 1=1 -- sakjdkljakldjasl‘ and password=‘‘
"""
日常生活中很多软件在注册的时候都不能含有特殊符号
因为怕你构造出特定的语句入侵数据库 不安全

# 敏感的数据不要自己做拼接 交给execute帮你拼接即可
# 结合数据库完成一个用户的登录功能?
import pymysql


conn = pymysql.connect(
    host = 127.0.0.1,
    port = 3306,
    user = root,
    password = 123456,
    database = day48,
    charset = utf8  # 编码千万不要加-
)  # 链接数据库
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)

username = input(>>>:)
password = input(>>>:)
sql = "select * from user where name=%s and password=%s"
# 不要手动拼接数据 先用%s占位 之后将需要拼接的数据直接交给execute方法即可
print(sql)
rows = cursor.execute(sql,(username,password))  # 自动识别sql里面的%s用后面元组里面的数据替换
if rows:
    print(登录成功)
    print(cursor.fetchall())
else:
    print(用户名密码错误)

 

以上是关于MySQL-pymysql模块的主要内容,如果未能解决你的问题,请参考以下文章

如何使用模块化代码片段中的LeakCanary检测内存泄漏?

如何有条件地将 C 代码片段编译到我的 Perl 模块?

CTS测试CtsWindowManagerDeviceTestCases模块的testShowWhenLockedImeActivityAndShowSoftInput测试fail项解决方法(代码片段

如何将字符串数据从活动发送到片段?

argparse 代码片段只打印部分日志

nodejs常用代码片段