python新建连接mysql_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 语句用双引号

如果需要用后面的值代替表名,需要以下面的写法

在pymysql的execute方法中,执行的mysql语句中用%s替换的参数外加上了单引号。而在mysql的语句中表名和列名外都不能加单引号,而值则可以加单引号。

cursor.execute('select api_name, api_code from %s where id=%s and disabled=%s' %('jc_api_info', '1', '0'))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值