mysql----pymsql
一、初始
import pymysql #创建连接 cnn = pymysql.connect(host = '127.0.0.1',port=3306,user='root',passwd='qlyj1995523',db='class',charset='utf8') #创建游标 cursor = cnn.cursor() #参数传递 inp=input("请输入班级:") #执行sql,并返回影响行数 r = cursor.execute('insert into class(caption) values(%s)',inp) #提交,不然无法保存数据 cnn.commit() #关闭游标 cursor.close() #关闭连接 cnn.close()
注意:必须使用参数传递,避免使用字符串拼接的形式传递,第二种方式会造成sql注入(原因:sql语句中的‘--’注释)
传入多个参数时,使用元组的形式:cursor.execute('insert into student(gender,class_id,sname) values(%s,%s,%s)',('女',1,'kaixin'))
加入多条数据时:cursor.executemany('insert into student(gender,class_id,sname) values(%s,%s,%s)',[('女',1,'kaixin'),('女',1,'kaixin2')])
二、sql语句
1、增删改
cursor.execute('sql语句')
连接.commit #才能保存修改
2、查fetch
import pymysql #创建连接 cnn = pymysql.connect(host = '127.0.0.1',port=3306,user='root',passwd='qlyj1995523',db='class',charset='utf8') #创建游标 cursor = cnn.cursor() r = cursor.execute('select * from student') #result= cursor.fetchall() result = cursor.fetchone() # result= cursor.fetchmany(3) print(result) #关闭游标 cursor.close() #关闭连接 cnn.close()
注:在fetch数据时按照顺序进行,可以使用cursor.scroll(num,mode)来移动游标位置,如:
- cursor.scroll(1,mode='relative') # 相对当前位置移动
- cursor.scroll(2,mode='absolute') # 相对绝对位置移动
设置字典类型
# 游标设置为字典类型
cursor
= conn.
cursor
(
cursor
=pymysql.cursors.DictCursor)
3、获取新创建数据自增ID
new_id =
cursor
.lastrowid