代码示例
import pymysql
conn = pymysql.connect(host='localhost', user='root', password='root', database='day47')
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
sql0 = 'select * from userinfo;'
rows = cursor.execute(sql0, ('quincy', 123))
sql = 'insert into userinfo(name,password) values(%s,%s)'
rows = cursor.executemany(sql, [('quincy', 123), ('quincy', 123)])
sql = 'insert into userinfo(name,password) values(%(u)s,%(p)s)'
rows = cursor.execute(sql, {'u': 'quincy', 'p': 123})
# result = cursor.fetchone()
cursor.scroll(1, 'absolute')
print(cursor.fetchone())
cursor.scroll(1, 'relative')
print(cursor.fetchone())
print(cursor.fetchmany(7))
print(cursor.lastrowid)
# print(result)
conn.commit()
cursor.close()
conn.close()
重点代码
1.
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
指定数据返回的方式,默认为元组,加入cursor=pymysql.cursors.DictCursor返回字典
2.
cursor.execute(sql,('num1','num2'))
2.1. 传值时必须是字典,元组或者列表类型
2.2. 不要自己拼接字符串,防止sql注入
3.
cursor.scroll(1,'absolute')
cursor.scroll(1,'relative')
absolute的位置指从第一条记录开始;
relative的位置指当前的位置。
4.
cursor.lastrowid
获取最新一条记录的id,其实也是数据库最后一条~
5.
cursor.fetchone()
游标会跟着移动一个,如果要重新获取已经获取过的值,需要调用scroll方法~
6.
conn.commit()
pymysql需要提交一下,才能真正入库!!!