欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python MySQLdb 執(zhí)行sql語(yǔ)句時(shí)的參數(shù)傳遞方式

 更新時(shí)間:2020年03月04日 08:15:17   作者:翔云123456  
這篇文章主要介紹了Python MySQLdb 執(zhí)行sql語(yǔ)句時(shí)的參數(shù)傳遞方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

使用MySQLdb連接數(shù)據(jù)庫(kù)執(zhí)行sql語(yǔ)句時(shí),有以下幾種傳遞參數(shù)的方法。

1.不傳遞參數(shù)

conn = MySQLdb.connect(user="root",passwd="123456",host="192.168.101.23",db="cmdb")

orange_id = 98
sql = "select * from orange where id=%s" % orange_id

cursor = conn.cursor(sql)
cursor.execute()

2.傳遞參數(shù)

color = "yellow"
sql = "select * from orange where color = %s"

cursor.execute(sql, color)

注意此處的占位符是%s,無(wú)論是字符串、數(shù)字或者其他類(lèi)型,都是這個(gè)占位符。

另外, %s不能加引號(hào),如'%s', 這是錯(cuò)誤的寫(xiě)法。

與第一種寫(xiě)法,有什么區(qū)別呢?

兩者區(qū)別是對(duì)變量的解析:

第一種寫(xiě)法,使用百分號(hào)%, 是用Python解釋器對(duì)%s執(zhí)行相應(yīng)的替換。這種方法存在漏洞,有些時(shí)候不能正常解析,比如包含某些特殊字符,甚至?xí)斐勺⑷牍舻娘L(fēng)險(xiǎn)。

第二種,變量是作為execute的參數(shù)傳入的,由MySQLdb的內(nèi)置方法把變量解釋成合適的內(nèi)容。

一般情況下,建議使用第二種方法,把變量作為參數(shù)傳遞給execute。

3.使用字典dict類(lèi)型傳遞參數(shù)

sql = "select * from orange where %(color)s, %(weight)s"
values = {"color": "yellow", "weight": 30}
cursor.execute(sql, values)

這種方式,傳遞的參數(shù)對(duì)應(yīng)關(guān)系比較清晰。尤其是參數(shù)比較多時(shí),使用字典,可以保證傳遞參數(shù)的順序正確。

補(bǔ)充知識(shí):python自動(dòng)化之pymysql庫(kù)使用變量向SQL語(yǔ)句中動(dòng)態(tài)傳遞參數(shù)(sql注入 || 傳參策略)

使用python 3連接Mysql實(shí)現(xiàn)自動(dòng)化增刪查改庫(kù)內(nèi)數(shù)據(jù),由于項(xiàng)目原因很多的sql語(yǔ)句過(guò)于復(fù)雜,導(dǎo)致sql語(yǔ)句內(nèi)傳遞的參數(shù)過(guò)多而且容易變動(dòng),導(dǎo)致很多同學(xué)不知從何下手動(dòng)態(tài)的傳遞參數(shù),有的采用比較笨的方法拼接sql,但是工作量太大,而且復(fù)雜的語(yǔ)句拼接時(shí)很容易出錯(cuò)且不好維護(hù),所以為大家整理了%s占位符的字典傳參的用法

import pymysql
 
db = pymysql.connect(host="119.XX.XX.XX",
            port=3306,
            user="XXXXXXXX",
            passwd="XXXXXXXXXXXXX",
            db="XXXXXX",
            charset='utf8')
 
# %s 占位符為需要傳遞的參數(shù),切記不要加''雙引號(hào),要不然會(huì)報(bào)錯(cuò)
sql = "SELECT totalusercount * 1.4 FROM mm_project_uv_outdoor WHERE poiid = %s AND currenttime = %s"
 
cursor = db.cursor()
# 以下為傳遞多個(gè)參數(shù)的用法
cursor.execute(sql,['B00140N5CS','2019-04-23'])
# 傳遞單個(gè)參數(shù)時(shí) cursor.execute(sql,'B00140N5CS')
print(cursor.fetchall())
db.close()

運(yùn)行后就能得到所查詢(xún)的數(shù)據(jù)了

最后建議大家多看官方的文檔或標(biāo)準(zhǔn)教程,這樣更有益學(xué)習(xí)

以上這篇Python MySQLdb 執(zhí)行sql語(yǔ)句時(shí)的參數(shù)傳遞方式就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 一文搞懂Python中函數(shù)的定義與使用

    一文搞懂Python中函數(shù)的定義與使用

    函數(shù)是具有某種特定功能的代碼塊,可以重復(fù)使用。這篇文章將為大家詳細(xì)介紹Python中函數(shù)的定義與使用,感興趣的小伙伴可以學(xué)習(xí)一下
    2022-06-06
  • Pytorch?Conda環(huán)境pack打包遷移報(bào)錯(cuò)的處理方案

    Pytorch?Conda環(huán)境pack打包遷移報(bào)錯(cuò)的處理方案

    這篇文章主要介紹了Pytorch?Conda環(huán)境pack打包遷移報(bào)錯(cuò)的處理方案,文中通過(guò)代碼示例和圖文結(jié)合的方式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-07-07
  • python中時(shí)間、日期、時(shí)間戳的轉(zhuǎn)換的實(shí)現(xiàn)方法

    python中時(shí)間、日期、時(shí)間戳的轉(zhuǎn)換的實(shí)現(xiàn)方法

    這篇文章主要介紹了python中時(shí)間、日期、時(shí)間戳的轉(zhuǎn)換的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Python 函數(shù)簡(jiǎn)單易理解版

    Python 函數(shù)簡(jiǎn)單易理解版

    本文將用簡(jiǎn)單易解的描述方法對(duì)Python 函數(shù)做一個(gè)詳情介紹,感興趣的朋友可以參考下文
    2021-08-08
  • Sublime Text v4.0(4143)安裝方法

    Sublime Text v4.0(4143)安裝方法

    這篇文章主要介紹了Sublime Text v4.0(4143)安裝破解方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-02-02
  • Python使用pandas處理CSV文件的實(shí)例講解

    Python使用pandas處理CSV文件的實(shí)例講解

    今天小編就為大家分享一篇Python使用pandas處理CSV文件的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06
  • pygame多種方式實(shí)現(xiàn)屏保操作(自動(dòng)切換、鼠標(biāo)切換、鍵盤(pán)切換)

    pygame多種方式實(shí)現(xiàn)屏保操作(自動(dòng)切換、鼠標(biāo)切換、鍵盤(pán)切換)

    這篇文章主要介紹了pygame多種方式實(shí)現(xiàn)屏保操作(自動(dòng)切換、鼠標(biāo)切換、鍵盤(pán)切換),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • Python unittest裝飾器實(shí)現(xiàn)原理及代碼

    Python unittest裝飾器實(shí)現(xiàn)原理及代碼

    這篇文章主要介紹了Python unittest裝飾器實(shí)現(xiàn)原理及代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • Python實(shí)現(xiàn)單例模式的5種方法

    Python實(shí)現(xiàn)單例模式的5種方法

    單例模式應(yīng)該是應(yīng)用最廣泛,實(shí)現(xiàn)最簡(jiǎn)單的一種創(chuàng)建型模式。本文詳細(xì)的介紹了Python實(shí)現(xiàn)單例模式的5種方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • 基于Python的圖像數(shù)據(jù)增強(qiáng)Data Augmentation解析

    基于Python的圖像數(shù)據(jù)增強(qiáng)Data Augmentation解析

    這篇文章主要介紹了基于Python的圖像數(shù)據(jù)增強(qiáng)Data Augmentation解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08

最新評(píng)論