解決python 執(zhí)行sql語(yǔ)句時(shí)所傳參數(shù)含有單引號(hào)的問題
在編寫自己的程序時(shí),需要實(shí)現(xiàn)將數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫(kù),并且是帶參數(shù)的傳遞。
執(zhí)行語(yǔ)句如下:
sql_str = 'INSERT INTO teacher(t_name, t_info, t_phone, t_email) VALUES(’%s’, ’%s’, ’%s’, ’%s’)' % (result, result2, phoneNumber, Email)cur.execute(sql_str)
執(zhí)行程序后,產(chǎn)生錯(cuò)誤:
ProgrammingError: (1064, 'You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ’07、PRICAI’08、ACML’09 程序委員會(huì)主席/共同主席,多次擔(dān)任 ACM K’ at line 1')
發(fā)現(xiàn)是因?yàn)閞esult2參數(shù)為一個(gè)字符串,而字符串中出現(xiàn)了單引號(hào) ’,mysql語(yǔ)句受到影響報(bào)錯(cuò)。
原本認(rèn)為這個(gè)問題應(yīng)該會(huì)是有標(biāo)準(zhǔn)解決方案,可是網(wǎng)上查詢了一下,遇到這個(gè)問題的人不少,但沒有很好的方法解決。
于是考慮了一下,可以讓sql語(yǔ)句在讀取到單引號(hào)時(shí),知道這是字符串文本的單引號(hào),所以可以將參數(shù)中單引號(hào)替換為 ’ ,這樣或許可以順利語(yǔ)句如下:
result2 = result2.replace('’','’') #將result2中的 ’ 替換為 ’
PS: 這里請(qǐng)務(wù)必看清雙引號(hào)以及反斜杠的使用:)
經(jīng)過測(cè)試,問題得到了順利解決。
補(bǔ)充知識(shí):python動(dòng)態(tài)生成變量及sql語(yǔ)句與DF表轉(zhuǎn)化
先說(shuō)效果:
如圖,本來(lái)是這樣的一個(gè)DF表,表示各字段限制條件(A、B、C、D均為字段名)
通過下面步驟轉(zhuǎn)化為一條sql語(yǔ)句,當(dāng)然也做了反向操作
for i in range(3):locals()[’f’+str(i)]=[]
import pandas as pdimport numpy as npa = pd.DataFrame({'A':['>=',5], 'B':['<',6], 'C':['in',’('ha','he')’], 'D':['like','*q*'] })print(a)b = []for i in a.columns: b.append(str(i)+' '+str(a[i][0])+' '+str(a[i][1]).strip())c = ' and '.join(b) #b = b+str(i)+' '+str(a[i][0])+' '+str(a[i][1])+' '+'and'+' '#print(c)d = c.split(' and ')for i in range(3): locals()[’f’+str(i)]=[] for j in (range(len(d))): f = d[j].split(' ') locals()[’f’ + str(i)].append(f[i])print(f0,f1,f2)g = pd.DataFrame(columns=f0,data=[f1,f2])print(g)
以上這篇解決python 執(zhí)行sql語(yǔ)句時(shí)所傳參數(shù)含有單引號(hào)的問題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. XML入門精解之結(jié)構(gòu)與語(yǔ)法2. CSS Hack大全-教你如何區(qū)分出IE6-IE10、FireFox、Chrome、Opera3. CSS3實(shí)例分享之多重背景的實(shí)現(xiàn)(Multiple backgrounds)4. 利用CSS3新特性創(chuàng)建透明邊框三角5. XML入門的常見問題(一)6. HTML5 Canvas繪制圖形從入門到精通7. 概述IE和SQL2k開發(fā)一個(gè)XML聊天程序8. HTML <!DOCTYPE> 標(biāo)簽9. HTML DOM setInterval和clearInterval方法案例詳解10. XML入門的常見問題(二)
