1. 程式人生 > >pymsql的簡單實用方法

pymsql的簡單實用方法

查詢 value 數據回滾 取數 abs name absolut utf8 rom

在進行本文以下內容之前需要註意:

1、你有一個MySQL數據庫,並且已經啟動。
2、你有可以連接該數據庫的用戶名和密碼
3、你有一個有權限操作的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

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

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()

pymsql的簡單實用方法