• Python mysql 创建连接


    安装 pymysql 模块

    pip3 install pymysql
    # python2, 默认无 pip 命令
    # python3, 默认自带 pip3 命令 
    

    mysql基本操作

    # 导入 pymysql 模块
    import  pymysql
    
    # 创建连接
    conn = pymysql.connect(host='192.168.0.214', port=3306, user='root', passwd='123456', db='tmpdb')
    
    # 获取光标
    cursor = conn.cursor()
    
    # 以字典的形式返回结果
    # cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
    
    # 插入一行
    result = cursor.execute("insert into tmp(name) values (%s)",("jim"))
    
    # 插入多行
    result = cursor.executemany("insert into tmp(name) values (%s)",[("james1"),("james2"),("james2")])
    
    # 修改后必须提交
    conn.commit()
    
    # 获取一行数据
    cursor.execute('select * from tmp')
    r = cursor.fetchone()
    print(r)
    
    # 获取4行数据
    cursor.execute('select * from tmp')
    r = cursor.fetchmany(4)
    print(r)
    
    # 获取影响的行数
    result = cursor.execute('select * from tmp')
    print(result)
    
    # 获取所有的值
    values = cursor.fetchall()
    print(values)
    
    # 把光标移到最开始处
    cursor.scroll(0, mode='absolute')
    
    # 关闭光标
    cursor.close()
    
    # 关闭连接
    conn.close()
    

    在操作mysql中应当禁止使用字符串拼接sql 的方式

    # 禁止例子 :
    inp = input('please input name: ')
    sql = 'insert into tmp(name) values("%s")'
    sql = sql %(inp,)
    r = cursor.execute(sql)
    conn.commit()
    
    # 推荐例子:
    inp = input('please input name: ')
    print(inp, type(inp))
    r = cursor.execute('insert into tmp(name) values(%s)', inp)
    conn.commit()
    
    # 获取所插入数据的主键id值,注意表的 id 必须是 AUTO_INCREMENT
    nid = cursor.lastrowid
    print(nid)
    
    

    补充

    # 数据库也可以通过以下方式连接
    import  pymysql
    
    PY_MYSQL_CONN_DICT = {
        "host" : '192.168.0.214',
        "port" : 3306,
        "user" : 'root',
        "passwd" : '123456',
        "db" : 'tmpdb'
    }
    
    conn = pymysql.connect(**PY_MYSQL_CONN_DICT)
    

    注意

    在 mysql 的 insert 语句中表名和列名外都不能加单引号,而值则可以加单引号且 sql 语句用双引号

  • 相关阅读:
    硝烟中的Scrum和XP-我们如何实施Scrum 12)发布计划 13)组合XP
    php array key 的存储规则
    IE下单选按钮隐藏后点击对应label无法选中的bug解决
    使用QML自绘页面导航条
    unity 获取物体尺寸
    输出众数,输出超限问题
    HTTP请求具体解释
    app 设计原则 ,步骤
    Distinct Subsequences
    OSX: 禁止iCloud钥匙链?
  • 原文地址:https://www.cnblogs.com/klvchen/p/10101239.html
Copyright © 2020-2023  润新知