1. 程式人生 > 資料庫 >pymysql模組的操作例項

pymysql模組的操作例項

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)

以上就是相關知識點內容,感謝大家的學習和對我們的支援。