Python Pymysql模組基本使用

2021-10-07 21:36:49 字數 2178 閱讀 1050

5. 防止sql注入

使用pip工具安裝

window下: cmd -> pip install pymysql

linux下: terminal -> sudo pip3 install pymysql

import pymysql

# 建立mysql資料庫連線

conn = pymysql.connext(

)'''

引數:host: str 資料庫位址, 本機為: 'localhost'或'127.0.0.1'

port: int 埠號, 預設3306

user: str 使用者名稱

password: str 密碼

database: str 指定資料庫名稱

charset: str 編碼

'''

游標物件的作用就是執行sql語句, 對資料庫進行增刪改查操作

# 建立游標物件

cursor = conn.cursor(

)# 執行sql語句

cursor.execute(

)'''

引數:query: str, sql語句

'''

使用游標物件執行查詢語句後, 會在游標物件中儲存查詢到的資料, 需要使用方法獲取資料

# 查詢資料表a中的所有資訊

cursor.execute(

'select * from a'

)# 獲取游標物件中的所有資料

data = cursor.fetcall(

)# 獲取游標物件中的第一條資料

data = cursor.fetcone(

)# 查詢第一條資料也可以使用sql中的limit實現

cursor.execute(

'select * from a limit 1'

)data = cursor.fetcall(

)# 注意: 即使是一條資料, 也是二維元組

對於增刪改操作來說

# 在a表中新增一條資料

cursor.execute(

'insert into a(id, name, age, ***)values(1, "a", 10,0)'

)# 此時在記憶體中, 資料已經新增上了, 但並沒有新增到資料庫中

# 修改資料

cursor.execute(

'update a set name="b" where id=1'

)# 同樣是修改的記憶體中的資料

# 刪除資料

cursor.execute(

'delete from a where id=1'

)# 在記憶體中刪除此條資料

# 提交資料

cursor.commit(

)# 雖然提交, 但資料庫不會有任何改變, 因為新增資料已經被刪除

# 關閉游標物件

cursor.close(

)# 關閉資料庫連線

conn.close(

)

sql注入是什麼: 使用者提交惡意資料與sql語句拼接, 可能導致sql語句出錯, 致使資料洩露等

防止sql注入的方式:

不安全方式: sql語句字串拼接使用python格式化拼接, 需要加引號

安全方式: 使用execute方法中的第二個引數實現拼接, 不需要新增引號

# 通過姓名查詢資料

# 不安全方式

name =

input()

cursor.execute(

'select * from a where name="%s"'

% name)

# 安全方式

name =

input()

cursor.execute(

'select * from a where name=%s'

, name)

# 多個引數安全方式

arg =

['a'

,'14'

]cursor.execute(

'select * from a where name=%s or age=%s'

, arg)

Python PyMySQL模組讀寫MySQL資料

安裝 pip install pymysqlpymysql 操作和mysqldb 類似,可參考 python程式設計 mysqldb模組對資料庫的基本增刪改查操作 import pymysql 連線 conn pymysql.connect host 127.0.0.1 port 3306 user...

python pymysql基礎使用

方法 conn.基本使用 import pymysql conn pymysql.connect host 你的資料庫位址 user 使用者名稱 password 密碼 database 資料庫名 charset utf8 cursor conn.cursor sql create table us...

Python,pymysql簡單使用。

基本操作 1 匯入pymysql import pymysql 2 連線資料庫 conn pymysql.connect host localhost user root passwd root db ere charset utf8 務必注意各等號前面的內容!charset引數可避免中文亂碼 3 ...