摘要:一安裝模塊二導入需要的模塊三構建數據庫屬性四寫語句五使用連接數據庫六執行語句插入數據刪除刪除數據時如果沒有提交數據庫中數據不變但是查詢到的東西沒有要刪除的那條數據修改數據庫如果修改沒有提交在代碼查看到的數據已經修改單數數據庫中的數據沒有修改
一.安裝pyMySQL模塊
pip install pymysql
二,導入需要的模塊
import pymysql
三.構建數據庫屬性
host = "localhost" username = "root" password = "root" db_name = "test"
四.寫sql語句
insert_table_sql = """insert into user values (null ,"lw","555222000")""" find_table_sql = """select * from user""" delete_table_sql = """delete from user where user_id={user_id}"""
五.使用pymysql連接數據庫
conn = pymysql.connect(host=host, user=username, password=password, db=db_name)
六.執行SQL語句
try: with conn.cursor() as cursor: # 插入數據 # cursor.execute(insert_table_sql.format(username="ll", password="123")) # conn.commit() # 刪除 # cursor.execute(delete_table_sql.format(user_id="3")) # pymysql刪除數據時,如果,沒有提交,數據庫中數據不變,但是查詢到的東西沒有 # 要刪除的那條數據 # conn.commit() # 修改數據庫 cursor.execute(update_table_sql.format(user_id=5)) # 如果修改沒有提交,在代碼查看到的數據已經修改,單數數據庫中的數據沒有修改 conn.commit() # 查詢全部數據 cursor.execute(find_table_sql) result = cursor.fetchall() print(result) finally: conn.close()
七.防sql注入
修改插入數據sql語句為:
insert_table_sql = """insert into user(user_id,user_name,password) values (%S ,%S,%S)"""
執行代碼修改為
cursor.execute(insert_table_sql, (1, "ll", "123")) conn.commit()
運行后報錯
Traceback (most recent call last): File "D:/creator/pythonProject/0002.py", line 55, insave_code() File "D:/creator/pythonProject/0002.py", line 33, in save_code cursor.execute(insert_table_sql, (1, "ll", "123")) File "D:creatorpythonProjectvenvlibsite-packagespymysqlcursors.py", line 168, in execute query = self.mogrify(query, args) File "D:creatorpythonProjectvenvlibsite-packagespymysqlcursors.py", line 147, in mogrify query = query % self._escape_args(args, conn) ValueError: unsupported format character "S" (0x53) at index 54
錯誤原因:字符占位符寫錯的應該是%s 而不是$S s應該小寫
修改語句為
insert_table_sql = """insert into user(user_id,user_name,password) values (%s ,%s,%s)"""
運行正常
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/42941.html
摘要:模塊什么是是在版本中用于連接服務器的一個庫,中則使用。遵循數據庫規范,并包含了客戶端庫。 【Python3】pymysql模塊 1. 什么是 PyMySQL? PyMySQL 是在 Python3.x 版本中用于連接 MySQL 服務器的一個庫,Python2中則使用mysqldb。 PyMySQL 遵循 Python 數據庫 API v2.0 規范,并包含了 pure-Python ...
摘要:簡述是中操作的模塊,其使用方法和幾乎相同。但目前支持而后者不支持版本。因此要避免這種情況需使用提供的參數化查詢。使用存儲過程動態執行防注入使用存儲過程自動提供防注入,動態傳入到存儲過程執行語句。 簡述 pymsql是Python中操作MySQL的模塊,其使用方法和MySQLdb幾乎相同。但目前pymysql支持python3.x而后者不支持3.x版本。本文測試python版本:3.5....
摘要:一介紹是在版本中用于連接和操作服務器的一個庫引入方式二連接數據庫的完整流程引入模塊引入第三方庫創建連接對象用戶名密碼端口號默認為且此處為整數類型數據庫名連接地址使用連接對象創建游標對象游標對象是通過鏈接對象進行創 ...
閱讀 1493·2021-11-24 11:16
閱讀 2700·2021-07-28 12:32
閱讀 2309·2019-08-30 11:22
閱讀 1448·2019-08-30 11:01
閱讀 605·2019-08-29 16:24
閱讀 3553·2019-08-29 12:52
閱讀 1633·2019-08-29 12:15
閱讀 1341·2019-08-29 11:18