• day83-pymysql操作mysql,pycharm安装pymysql的方法(驱动)


    # 1.pymysql连接mysql校验用户名和密码:
    import pymysql
    usn = input('请输入用户名:')
    psd = input('请输入密码:')
    # pymysql连接MySQL,得到一个连接
    conn = pymysql.connect(
        host='localhost',
        port=3306,      #数字类型
        user='root',
        password='123',
        database='db1',
        charset='utf8'  #注意是utf8不是utf-8
                    )
    cursor = conn.cursor()          #光标对象
    #不推荐此写法
    # sql = "select * from userinfo where username='%s'and password='%s'"%(usn,psd)     #sql语句
    # ret = cursor.execute(sql)       #光标执行sql语句,拿到行数
    #推荐下面传参的写法
    sql = "select * from userinfo where username=%s and password=%s"     #sql语句
    ret = cursor.execute(sql,[usn,psd])       #让pymysql帮忙拼接字符串,避免出错,使用列表和元祖都可以
    print(ret)
    if ret:
        print('登录成功')
    else:
        print('登录失败')
    
    cursor.close()      #关闭对象
    conn.close()        #关闭连接
    
    # 2.增:  增删改都需要commit,查不需要。
    import pymysql
    conn = pymysql.connect(
        host='localhost',
        port=3306,
        user='root',
        password='123',
        database='db1',
        charset='utf8'
    )
    cursor = conn.cursor()
    
    sql = 'insert into userinfo(username,password) values(%s,%s)'
    cursor.execute(sql,['tommy','777'])
    conn.commit()   #提交,注意这里是提交!!!!!!
    
    cursor.close()
    conn.close()
    
    #3.返回字典格式数据:将结果作为字典返回的光标
    cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
    
    #4.失败回滚
    #在执行增删改操作时,如果前面的操作不成功,可以使用 rollback() 回滚取消操作。
    sql = 'insert into userinfo(username,password) values(%s,%s)'
    try:
        # 尝试执行SQL语句
        cursor.execute(sql, [usn,psd])
        # 如果上面代码没问题,就提交事务
        conn.commit()
    except Exception as e:
        #上面尝试执行的代码有问题,把结果作为e返回
        print('有错误',str(e))
        # 接着回滚事务
        conn.rollback()
    
    #5.获取刚插入数据的ID(连表操作时会用到)
        # 提交事务
        conn.commit()
        # 提交事务之后,才可以获取刚插入的数据的ID
        last_id = cursor.lastrowid
    
    #6.批量执行
        data = [("Alex", 18), ("Egon", 20), ("Yuan", 21)]
        cursor.executemany(sql, data)
    
    #7.删
        sql = "DELETE FROM userinfo WHERE id=%s;"
        cursor.execute(sql, [4])
        conn.commit()
    
    #8.改
        sql = 'update userinfo set username=%s where id=%s'
        cursor.execute(sql,['ttt',1])
        conn.commit()
    
    #9.获取数据:
        #9.1 获取单条数据,结果是字典,k是数据库的字段名,v是值
        sql = 'select * from userinfo where id = %s'
        cursor.execute(sql,[1])
        ret = cursor.fetchone()
        print(ret) #{k1:v1,k2:v2}
        # 9.2 获取多条数据,结果是字典列表,一个字典就是一行数据。
        sql = 'select * from userinfo'
        cursor.execute(sql)
        ret = cursor.fetchall()
        print(ret) #[{k1:v1,k2:v2},{k1:v1,k2:v2}......]
    
    #10.进阶用法
        # 可以获取指定数量的数据
        cursor.fetchmany(3)
        # 光标按绝对位置移动1,也就是移动到第一行
        cursor.scroll(1, mode="absolute")
        # 光标按照相对位置(当前位置)移动1,也就是移动到下一行
        cursor.scroll(1, mode="relative")

    #11.pycharm安装pymysql的方法

    #12.pycharm连接mysql的方法,安装驱动,,URL后面添加?serverTimezone=GMT

    #13.pycharm的database按钮

    14.sql注入问题:通过传参解决:cursor.execute(sql,[usn,psd])

  • 相关阅读:
    ObjectiveC字符串处理
    分享 10 个 jQuery 的语言翻译插件
    30 个实用的 jQuery 选项卡/导航教程推荐
    iphoneCocos2D游戏开发
    cocos2d和unity3d的比较
    将NSString转换编码集变为GBK或GB2312
    超过 40 款很有用而且很新的 jQuery 插件
    表格单元的表现形式
    ShareKit
    UI Prototype Design IDE( 界面原型设计工具 )
  • 原文地址:https://www.cnblogs.com/python-daxiong/p/12572159.html
Copyright © 2020-2023  润新知