2015-08-20 18 views
0

OK如何在python中作爲查詢傳遞時禁用字符串引號?

我將查詢發送到我的MySQL服務器的財產以後這樣

INSERT INTO accesslist (user, ip, sshid, status) VALUES ("root", "138.117.37.88", "1335", "Failed") 

吧,我寫我的查詢作爲

query = ('INSERT INTO %s (user, ip, sshid, status) VALUES (%s, %s, %s, %s)') 
data_entry = (tablename, user, ip, sshid, status) 

,但它是什麼做的是它被加上引號圍繞表名和MySQL正在拋出一個錯誤。它發送爲

INSERT INTO "accesslist" (user, ip, sshid, status) VALUES ("root", "138.117.37.88", "1335", "Failed") 

所以我怎麼能刪除我的表名引號?

如果我把靜態表名,那麼它工作正常。

+0

你可以嘗試以下*注意三倍報價*'查詢=( 「」「INSERT INTO%S(用戶,IP,sshid,狀態)值(%S,%S,S, %s)「」「,(表名,用戶,ip,sshid,狀態))' 如果這個作品讓我知道,我會發布它作爲下面的答案。 – LampPost

+0

@RobertWong我試過了,但它不起作用相同的錯誤 –

+0

1064(42000):你的SQL語法有錯誤;檢查與您的MySQL服務器版本對應的手冊,以在''accesslist10'(user,ip,sshid,status)附近使用正確的語法。VALUES('root','218.87.111.108','1284'in line 1 –

回答

0

您的解決方案似乎正確。不要離題,但我建議你使用str.format,因爲它提供了更多選項並支持名爲kwargs。除此之外,這是一種更新和推薦的方法。

Tutorial

相關問題