簡體   English   中英

Python:在字符串周圍插入雙引號或單引號

[英]Python: inserting double or single quotes around a string

我使用python來訪問MySQL數據庫並且因為引號不在變量周圍而在字段中獲取未知列。

代碼如下:

cur = x.cnx.cursor()
cur.execute('insert into tempPDBcode (PDBcode) values (%s);' % (s)) 
rows = cur.fetchall()

如何在s的值周圍手動插入雙引號或單引號? 我嘗試使用str()並手動連接s周圍s引號,但它仍然無法正常工作。 sql語句工作正常iv雙和三檢查我的SQL查詢。

您不應該使用Python的字符串函數來構建SQL語句。 您冒着留下SQL注入漏洞的風險。 你應該這樣做:

cur.execute('insert into tempPDBcode (PDBcode) values (%s);', s) 

請注意逗號。

如果您使用數據庫API,Python將自動為您執行此操作:

cur = x.cnx.cursor()
cur.execute('insert into tempPDBcode (PDBcode) values (%s)',s) 

使用DB API意味着python將確定是否使用引號,並且還意味着您不必擔心SQL注入攻擊,以防您的s變量恰好包含,例如,

value'); drop database; '

如果這純粹是一個字符串處理問題,答案就是將它們放在字符串中:

cur.execute('insert into tempPDBcode (PDBcode) values ("%s");' % (s)) 

這是Python支持兩種引號的經典用例。

但是,正如其他答案和評論所指出的那樣,在這種情況下存在與SQL相關的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM