您好,登錄后才能下訂單哦!
這篇文章主要介紹了Python pymysql向SQL語句中傳參的方法有哪些,具有一定借鑒價值,需要的朋友可以參考下。下面就和我一起來看看吧。
Python-pymysql如何向SQL語句中傳參
方法一:不傳遞參數
方法二:使用數組傳遞參數
方法三:使用字典dict類型傳遞參數
## 方式一、不傳遞參數 id = "01" name = "語文" sql = "select * from course where course_id = '%s' and course_name = '%s' ;" %(id,name) ## 執行數據庫查詢或命令 cursor.execute(sql)
## 方式二、使用數組傳遞參數 values = ['01','語文'] sql = "select * from course where course_id = %s and course_name = %s " ## 執行數據庫查詢或命令 cursor.execute(sql,values)
注意:此處的占位符是%s,無論是字符串、數字或者其他類型,都是這個占位符。 %s不能加引號。
與第一種寫法,有什么區別呢?
兩者區別是對變量的解析:
第一種寫法,使用百分號%, 是用Python解釋器對%s執行相應的替換。這種方法存在漏洞,有些時候不能正常解析,比如包含某些特殊字符,甚至會造成注入攻擊的風險。
第二種,變量是作為execute的參數傳入的,由MySQLdb的內置方法把變量解釋成合適的內容。
一般情況下,建議使用第二種方法,把變量作為參數傳遞給execute。
## 方式三、使用字典dict類型傳遞參數 sql = "select * from course where course_id = %(course_id)s and course_name = %(course_name)s ;" ## 將參數封裝到字典 #values = {'course_id':'01','course_name':'語文'} values = {'course_name':'語文','course_id':'01'} ## 執行數據庫查詢或命令 cursor.execute(sql,values)
這種方式,傳遞的參數對應關系比較清晰。尤其是參數比較多時,使用字典,可以保證傳遞參數的順序正確。
以上就是Python pymysql向SQL語句中傳參的方法有哪些的詳細內容了,看完之后是否有所收獲呢?如果想了解更多相關內容,歡迎來億速云行業資訊!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。