pymysql模組的操作例項
阿新 • • 發佈:2020-01-09
pymysql 模組!
pymysql模組時一個第三方模組!需要下載:
pymysql的基本使用:
import pymysql conn = pymysql.connect( user = 'root',password = '123',host = '127.0.0.1',# ip地址 port = 3306,# 埠 charset = 'utf8',database = 'day36_1' ) cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)# 產生遊標物件 # cursor=pymysql.cursors.DictCursor 將查詢出來的結果製成字典的形式返回 sql = "select * from userinto" res = cursor.execute(sql) #執行sql語句 res = cursor.fetchone() # 列印一條資料 res = cursor.fetchall() # 可以列印裡面的所有資料 res = cursor.fetchmany(2) #制定獲取幾條資料,如果數字超了也不報錯 print(res) cursor.scroll(2,'relative') #相對移動,基於指標所在位置,往後偏移 cursor.scroll(3,'absolute') #絕對移動,基於起始位置往後偏移 print(cursor.fetchall())
我們可以通過python匯入模組來連線資料庫,進行登陸註冊功能,在使用時sql會遇到注入問題
sql注入問題 利用特殊符號和註釋語法 巧妙的繞過真正的sql校驗,是使用者資料不安全
關鍵性的資料 不要自己手動去拼接 而是交由execute幫你去做拼接
import pymysql conn = pymysql.connect( user = 'root',port = 3306,database = 'day36_1',charset = 'utf8' ) cursor = conn.cursor(cursor=pymysql.cursors.DictCursor) #獲取使用者名稱和密碼,然後取資料庫中校驗 username = input('username>>>:').strip() password = input('password>>>:').strip() sql = "select * from userinto where name=%s and password=%s" print(sql) cursor.execute(sql,(username,password)) #交由execute幫你去做拼接,解決注入問題 res = cursor.fetchall() if res: print(res) else: print('username or password error!')
我們也可以利用pycharm來操作資料庫檔案的增刪改查!
針對增 刪 改操作 執行重要程度偏高
你如果真想操作 必須有一步確認操作(commit)
import pymysql conn = pymysql.connect( user = 'root',passwd = '123456',db = 'day36',charset = 'utf8',autocommit = True # 自動提交確認 ) cursor = conn.cursor(cursor=pymysql.cursors.DictCursor) # #查: 獲取使用者輸入的使用者名稱和密碼 然後取資料庫中校驗 # username = input('username>>>:').strip() # password = input('password>>>:').strip() # # sql = "select * from userinfo where name='%s' and password= '%s'"%(username,password) # sql = "select * from userinfo where name=%s and password= %s" # print(sql) # 增 sql = "insert into userinfo(name,password,dep_id) values('jason',789,1)" # 改 # sql = "update userinfo set name='egondsb' where id = 6" # 刪除 # sql = "delete from userinfo where id= 1" res = cursor.execute(sql) # conn.commit() # 確認當前操作 真正的同步到資料庫 print(res)
以上就是相關知識點內容,感謝大家的學習和對我們的支援。