10月30日學習內容整理 pymysql模組補充

2022-05-11 16:20:05 字數 1038 閱讀 4348

1、sql注入:

》以使用者登入為例,利用mysql中--兩個橫槓注釋的功能,可以在輸入使用者名稱的時候在後面加上--這樣就將密碼隱藏甚至加上其它邏輯運算使得使用者名稱也可以被隱藏,這樣就導致資料庫很容易就被破解。

》像這樣改變查詢邏輯的做法就是sql注入

》為了規避這種風險,我們通常使用execute函式來做字串的拼接,不要再自己做字串拼接,同時execute也會為我們規避掉sql注入的問題

2、拿游標:

cur=con.cursor()用連線去呼叫

》括號裡可以寫引數:cursor=pymysql.cursors.dictcursor   意思就是結果會以字典的形式輸出

3、移動游標位置

》相對絕對位置移動:

cur.scroll(2,'absolute')  這個2就代表遍歷到第2條後開始讀結果

從第3條結果開始取,每次使用absolute移動都是從0開始,也就是從結果的第一條開始

》相對當前位置移動

cur.scroll(2,'relative') 這個2就代表遍歷到第2條後開始讀結果

從第3條結果開始取,每次使用relative移動游標都是從當前位置開始

4、獲取自增id的最後乙個字段值和最新插入的自增欄位

cur.lastrowid     用游標去呼叫,獲取自增id的最後乙個字段值

con.insert_id()    用連線去呼叫,獲取最新插入的自增id

注意這兩個方法要在commit之前用,否則只會返回0或none,最好就是插入之後就要馬上查,若中間有查詢操作就是none,中間最好不要有其他操作

5、呼叫儲存過程:

游標呼叫

cur.callproc(儲存過程名(字串形式),(引數,))   引數以元組形式傳,不用定義

拿返回值:同樣用execute函式執行查詢命令

cur.execute('select  @_p2_0,@_p2_1;')    p2是儲存過程名字,0就代表第乙個引數的返回值,1就代表第二個引數的返回值,以此類推

cur.fetchone()     還是用fetchone取結果

10月29日10月30日

蜷縮著,蜷縮著,便是四年。丟去的是光陰,丟不去的是你。接連幾天看了一部網路 很久沒這樣看網路 了,原因是室友在看網路 的網劇 實在無聊就去翻了翻 結果 後面 癮就來了 3w 的txt檔案一天晚上看到了3點 第二天起來 搬工作室 頭也沒洗 任自己邋遢 狂躁 第二天晚上看到了1點 早上起來接著看 終於 ...

10月26日學習內容整理 pymysql模組

一 pymysql模組 其實就是提供了socket客戶端和mysql服務端的通訊介面 1 發起連線 conn pymysql.connect host 127.0.0.1 也就是服務端位址 port 3306,埠號就是3306 user root 使用者名稱 password 使用者名稱對應的密碼 ...

失業日記 10月30日

10月30日 周五 晴 今天早上一起來就吃火鍋,用火鍋做早餐,我也是醉了。上午寫聊天軟體的系列文章,不過寫起來感覺自己平時思考和組織語言能力不行,怎麼用文字表達自己的思想能力不足,這方面要加強。中午又繼續吃火鍋,人都上火了,不知道生活在重慶天天吃火鍋是一種什麼樣的體驗。下午完成了 簡談即時聊天系統設...