Python Mysql 語(yǔ)句里插入 list 變量
2023-2-1
Python 調(diào)用Mysql插入含有變量的數(shù)據(jù),注意,占位符和雙引號(hào)。
sql ="insert into f_table(name,dir) values('%s','%s')" %(filename,filepath)
organge_id = 98
sql = "select * from orange where id=%s" % orange_id
2.傳遞參數(shù)
color = "yellow"
sql = "select * from orange where color = %s"
注意此處的占位符是%s,無論是字符串、數(shù)字或者其他類型,
都是這個(gè)占位符。另外, %s不能加引號(hào),如'%s', 這是錯(cuò)誤的寫法。
與第一種寫法,有什么區(qū)別呢?
兩者區(qū)別是對(duì)變量的解析:
第一種寫法,使用百分號(hào)%, 是用Python解釋器對(duì)%s執(zhí)行相應(yīng)的替換。
這種方法存在漏洞,有些時(shí)候不能正常解析,比如包含某些特殊字符,甚至?xí)斐勺⑷牍舻娘L(fēng)險(xiǎn)。
實(shí)例:
https://zhuanlan.zhihu.com/p/90173762#:~:text=%E5%9C%A8Python%EF%BC%8Cformat%20%28%29%E9%80%9A%E5%B8%B8%E7%94%A8%E6%9D%A5%E5%81%9A%E6%95%B0%E6%8D%AE%E7%9A%84%E6%A0%BC%E5%BC%8F%E5%8C%96%E8%BE%93%E5%87%BA%EF%BC%8C%E8%BF%99%E9%87%8C%E4%B8%BB%E8%A6%81%E8%AE%B0%E5%BD%95format%EF%BC%88%EF%BC%89%E7%9A%84%E5%87%A0%E4%B8%AA%E7%94%A8%E6%B3%95%20%E8%AF%AD%E6%B3%95%EF%BC%9A%20%7Bindex0%7D,%7Bindex1%7D.format%20%28value1%2Cvalue2%29.%E5%8D%B3%E4%BD%BF%E7%94%A8format%EF%BC%88%EF%BC%89%E7%9A%84%EF%BC%88%EF%BC%89%E5%86%85%E7%9A%84%E5%80%BC%E4%BB%A3%E6%9B%BF%20%7B%7D%E5%86%85%E7%9A%84%E5%80%BC%20Part%201%3A%E6%AD%A3%E5%B8%B8%E8%BE%93%E5%87%BA
https://blog.csdn.net/weixin_39899244/article/details/111065626
https://blog.csdn.net/u011085172/article/details/79044490
https://cloud.tencent.com/developer/article/1743199#:~:text=python3%E5%B0%86%E5%8F%98%E9%87%8F%E5%86%99%E5%85%A5SQL%E8%AF%AD%E5%8F%A5%E7%9A%84%E5%AE%9E%E7%8E%B0%E6%96%B9%E5%BC%8F%201%201.%20%E8%BF%9E%E6%8E%A5mysql%202,2.%20%E5%A4%9A%E5%AD%97%E6%AE%B5%E5%8A%A8%E6%80%81%E6%8F%92%E5%85%A5mysql%E6%95%B0%E6%8D%AE%E5%BA%93%E4%B8%AD%203%203.%20%E6%95%B0%E6%8D%AE%E6%9B%B4%E6%96%B0%E6%8F%92%E5%85%A5mysql%E6%95%B0%E6%8D%AE%E5%BA%93%E4%B8%AD
