pymsql的簡單實用方法

在進行本文如下內容以前須要注意:

一、你有一個MySQL數據庫,而且已經啓動。
二、你有能夠鏈接該數據庫的用戶名和密碼
三、你有一個有權限操做的database

鏈接數據庫

#導入pymsql
import pymsql

name = input("name>>>").strip()
pwd = input("password>>>").strip()

#鏈接數據庫
conn = pymysql.connect(host='localhost',port=3306,user='root',password='123456',database='db3',charset='utf8')

#獲取光標對象
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor) #返回的是一個含有多個字典的列表
#cursor = conn.cursor() #返回的是一個含有多個元組的元組

#執行sql語句

# sql = "select *  from userinfo where name='%s' and password='%s';"%(name,pwd)
# res = cursor.execute(sql)

#解決sql注入的問題
sql = "select * from userinfo where name=%s and password=%s;"

#得到受影響的信息條數
res = cursor.execute(sql,[name,pwd]) #讓pymsql幫咱們拼接sql語句
print(res)

#獲取數據
ret = cursor.fetchall()
print(ret)

#關閉鏈接
cursor.close()
conn.close()

數據庫的增刪改查

除了查的操做不用conn.commit()外,其餘的操做都須要

import pymysql

conn = pymysql.connect(host='localhost',port=3306,user='root',password='123456',database='db3',charset='utf8')
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)

#添加一條信息
sql = "insert into userinfo(name,password) values(%s,%s)"
res = cursor.execute(sql,["rain222","1234"])
print(res)

#批量增長
sql = "insert into userinfo(name,password) values(%s,%s)"
res = cursor.executemany(sql,[("alex111","123"),("alex222","123"),("alex333",123)])
print(res)
conn.commit()

#修改
sql = "update userinfo set password=%s where name=%s;"
res = cursor.execute(sql,["666","summer1"])
print(res)
conn.commit()

#刪除
sql = "delete from userinfo where name=%s"
res = cursor.execute(sql,["summer3",])
print(res)
conn.commit()

#查詢
sql = "select * from userinfo;"
res = cursor.execute(sql)

ret = cursor.fetchone() #獲取查詢的第一條信息
ret = cursor.fetchmany(3) #獲取查詢的指定條數的信息
ret = cursor.fetchall() #獲取查詢的全部性信息
print(ret)
cursor.scroll(0,mode="absolute") #移動光標  絕對移動
cursor.scroll(1,mode="relative") #相對移動
ret = cursor.fetchall()
print(ret)

數據回滾與查看剛提交數據的id

在插入或者修改數據失敗的時候回滾python

import pymysql

conn = pymysql.connect(host='localhost',port=3306,user='root',password='123456',database='db3',charset='utf8')
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)

sql = "insert into userinfo(name,password) values(%s,%s)"
try:
    # 執行SQL語句
    res = cursor.execute(sql,["rain222","1234"])
    # 提交事務
    conn.commit()
    # 提交以後,獲取剛插入的數據的ID
    last_id = cursor.lastrowid
except Exception as e:
    # 有異常,回滾事務
    conn.rollback()
cursor.close()
conn.close()
相關文章
相關標籤/搜索