Python全栈之路-MySQL(五)

pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同。

#!/usr/bin/env python
# __Author__: "wanyongzhen"
# Date: 2017/5/18

import pymysql

# 创建连接
conn = pymysql.connect(host='192.168.56.11',port=3306,user='db01',passwd='db01',db='db01',charset='utf8')

# 创建游标
cursor = conn.cursor()
# 游标设置为字典类型
# cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)

# 执行SQL,并返回影响行数
effect_row = cursor.execute("insert into tb01(id,stu_name) VALUES(2,'wanyongzhen');")
effect_row = cursor.execute("select * from tb01;")
print(effect_row)
# row_1 = cursor.fetchone()   # 获取一条数据
# row_2 = cursor.fetchmany(3) # 获取多条数据
# row_3 = cursor.fetchall()   # 获取所有数据

# 注:在fetch数据时按照顺序进行,可以使用cursor.scroll(num,mode)来移动游标位置,如:
# cursor.scroll(1,mode='relative')  # 相对当前位置移动
# cursor.scroll(2,mode='absolute')  # 相对绝对位置移动

# 字符串拼接SQL,可以运行,但是禁止此类操作,以免发生SQL注入漏洞
# inp = input('请输入名字:')
# sql = "insert into tb01(id,stu_name) VALUES(2,'%s');" % inp
# cursor.execute(sql)

# 参数传递,必须使用参数的形式
# inp = input('请输入名字:')
# id = 1
# cursor.execute("insert into tb01(id,stu_name) VALUES(%s,%s);",(id,inp))
# 多条数据操作
l = [
    (2,'a'),
    (3,'b'),
    (4,'c')
]
cursor.executemany("insert into tb01(id,stu_name) VALUES(%s,%s);",l)

# 获取最新自增ID
# new_id = cursor.lastrowid

# 打印影响行数
print(effect_row)

# 提交执行确认
conn.commit()

# 关闭游标
cursor.close()

# 关闭连接
conn.close()

posted on 2017-06-13 13:06  万越天  阅读(94)  评论(0编辑  收藏  举报