pymysql模塊的使用

pymysql模塊

# 1.安裝:pip3 insatll pymysql

# 2.代碼連接
import pymysql
#連接
conn=pymysql.connect(
host='localhost',
user='root',
password='123',
database='egon',
charset='utf8')
autocommit = True # 自動提交;rows = cursor.excute(sql) 手動提交
#遊標
cursor=conn.cursor() #執行完畢返回的結果集默認以元組顯示
#cursor=conn.cursor(cursor=pymysql.cursors.DictCursor)  # 以字典的方式顯示數據

# 3.pymysql操做數據庫
#執行sql語句
user = input(">>>:").strip()
pwd = input(">>>:").strip()
sql='select * from userinfo where name="%s" and password="%s"' %(user,pwd) #注意%s須要加引號

rows=cursor.execute(sql) #執行sql語句,返回sql查詢成功的記錄數目
# 獲取真實數據cursor.fetchone(),cursor.fetchall(),cursor.fetchmany(),相似管道取值,獲取一條,全部,多條

cursor.scroll(1,'relative')  # 相對移動
cursor.scroll(3,'absolute')  # 絕對移動


cursor.close()
conn.close()

sql注入問題

# 不要手動去拼接查詢的sql語句
username = input(">>>:").strip()
password = input(">>>:").strip()
sql = "select * from user where username='%s' and password='%s'"%(username,password)

# 用戶名正確
username >>>: jason' -- jjsakfjjdkjjkjs
# 用戶名密碼都不對的狀況
username >>>: xxx' or 1=1 --asdjkdklqwjdjkjasdljad
password >>>: ''

增刪改

# 增
sql = "insert into user(username,password) values(%s,%s)"
rows = cursor.excute(sql,('jason','123'))

# 修改
sql = "update user set username='jasonDSB' where id=1"
rows = cursor.excute(sql)

"""
增和改單單執行excute並不會真正影響到數據,須要再執行conn.commit()才能夠完成真正的增改
"""

# 一次插入多行記錄
res = cursor,excutemany(sql,[(),(),()]
相關文章
相關標籤/搜索