pymsql的簡單實用方法
阿新 • • 發佈:2018-10-08
查詢 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的簡單實用方法