1. 程式人生 > >python學習筆記(73) pymysql模塊

python學習筆記(73) pymysql模塊

use 用戶名 連接 必須 rowid egg commit fetch .com

有連接,有關閉,有遊標

execute()  # 有SQL註入問題

增刪改需要conn.commit()

fetchone fetchall  # 遊標

cursor.lastrowid  # 最後一條的自增ID executemany以後也是最後一條

################################################

SQL註入:

import pymysql

user = input(‘用戶名:‘)
pdw = input(‘密碼:‘)

conn = pymysql.connect(host = ‘localhost‘,user = ‘root‘,password = ‘‘,database =‘db666‘)
cursor = conn.cursor()
# sql = "select * from userinfo where username = ‘%s‘ and password = ‘%s‘"%(user,pwd)
# cursor.execute(sql) # 自己進行字符串拼接會被SQL註入
# select * from userinfo where username = ‘uu‘ or 1=1 -- ‘and password = ‘%s‘ #SQL註入
sql = "select * from userinfo where username = %s and password = %s"
cursor.execute(sql,user,pwd) # 或者][user,pwd]或者字典拼接
result = cursor.fetchone()

cursor.close()
conn.close()

if result:
print(‘登陸成功‘)
else:
print(‘登陸失敗‘)

################################################

查:

import pymysql

conn = pymysql.connect(host = ‘localhost‘,user = ‘root‘,password = ‘‘,database =‘db666‘)

cursor = conn.cursor(cursor=pymysql.cursors.DictCursor) # 以字典形式顯示,常用
sql = ‘select * from userinfo‘
cursor.execute(sql)

# cursor.scroll(1,mode=‘relative‘) # 相對當前位置移動
# cursor.scroll(2,mode=‘absolute‘) # 絕對位置移動

result = cursor.fetchone()
result = cursor.fetchone() # 一次取一個

result = cursor.fetchmany(4) # 取4個
result = cursor.fetchall()

cursor.close()
conn.close()

################################################

改:

import pymysql

conn = pymysql.connect(host = ‘localhost‘,user = ‘root‘,password = ‘‘,database =‘db666‘)

sql1 = "insert into userinfo(username,password) values(%s%s)"
r = cursor.executemany(sql1,[(‘egg‘,‘sb‘),(‘alex‘,‘sb‘)])
print(r)# 一次提交多個,返回受影響行數
conn.commit() # 有修改操作必須commit

cursor.close()
conn.close()

python學習筆記(73) pymysql模塊