zoukankan      html  css  js  c++  java
  • python 链接 mysql数据库

    #需要导入pymysql模块

    import pymysql

    conn = pymysql.connect(
    host = '127.0.0.1',
    port = 3306,
    user = 'root',
    password = '*****',
    charset = 'utf8', #编码也一定要添加
    database = 'user_db' #一定要添加要使用的数据库
    )
    cursor = conn.cursor(cursor = pymysql.cursors.DictCursor)
    #设值获取的内容为字典模式,默认是元组


    sql = 'select * from user_db' #你要执行的sql语句
    cursor.execute(sql)

    print(cursor.fetchone()) #获取一条
    print(cursor.fetchmany(5)) #参数说明 要获取多少
    print(cursor.fetchall()) #获取所有
    # 注意: 获取的时候,有类似读文件的光标,
        可以用 cursor.scroll(1,'relative')
              cursor.scroll(1,'absolute') 来控制

    # absolute 是以开头为参考,relative 是以当前为参考


    ***************sql注入的问题*******************
    通过特殊符号,达到欺骗,
    select * from user_db where name = 'lqw' -- dadadada
    #知道用户名,需要密码的部分被注释掉了,直接登录成功
    select * from uer_db where name = 'add ' or 1 = 1 -- dada
    #不知道用户名,通过or 只要成立一个 1=1恒成立,也可以进入
    ,解决办法,不要让关键,敏感的自己拼接,
    import pymysql

    conn = pymysql.connect(.......
    ) 注意:要添加用的数据库

    cursor = conn.cursor()
    sql = 'select *from where name = "%s" and password = "%s"'
    cuusor.ececute(sql,(name,password))

    ******************pymysql的增删改查******************
    import pymysql

    conn = pymysql.connect(
    host = '127.0.0.1',
    port = 3306,
    user = 'root',
    password = '991018',
    db = 'user_db',
    charset = 'utf8',
    autocommit = True #自动提交 保存
    )
    cursor = conn.cursor(pymysql.cursors.DictCursor) #结果是以字典的
                                   形式保存的

    #查
    # sql = 'select password from user_db where username ="lqw" ;'
    # res = cursor.execute(sql)
    # print(res)
    # print(type(cursor.fetchone().get("password")))

    # 删
    # sql = 'delete from user_db where username ="alex"'
    #
    # res = cursor.execute(sql)
    # print(res)
    # sql1 = 'select *from user_db'
    # cursor.execute(sql1)
    # print(cursor.fetchall())
    #改

    # sql12 = 'update user_db set password = "123456" where
                            username = "lqw"'

    # res = cursor.execute(sql12)
    # print(res)
    # print(cursor.fetchone())
    # sql1 = 'select *from user_db'
    # cursor.execute(sql1)
    # print(cursor.fetchall())
    #增
    # sql = 'select password from user_db where username ="lqw" ;
    sql = 'insert user_db(username,password) values(%s,%s)'
    cursor.executemany(sql,[("tank","123"),("hanhan","123")])
    # sql1 = 'select *from user_db'
    # cursor.execute(sql1)
    print(cursor.fetchall())
     
    
    

       #        提提神

    
    
    永远不要高估自己
  • 相关阅读:
    使用mongo shell和客户端连接至MongoDB Atlas
    mongo connect BI 连接至Power BI
    react native android应用启动画面
    react native android 上传文件,Nodejs服务端获取上传的文件
    react native 增加react-native-storage
    html页面pc显示正常,在手机端适配也可以看整个页面
    如何外部访问你的本地网站natapp
    百分比圆角
    json相关知识
    indexOf用法
  • 原文地址:https://www.cnblogs.com/liqiangwei/p/13875737.html
Copyright © 2011-2022 走看看