2013-07-30 39 views
-1

我需要插入從列表中值入表蟒蛇 兩個列表說:插入字符串「從其它表的表與SQL

A = [(1,2,Don't Use), (2,4, None), (3,None, Need "Access") 

我試圖用pyodbc和SQL命令。

sql = "INSERT INTO New_Table(SL, ID, text) 

     VALUES ('%s', '%s', '%s)" % (A[i][0], A[i][1], A[i][2]) 

當文本沒有特殊字符像"'它的工作原理好。我尋找做到這一點,因爲我是新來這個節目的事情

+0

它被稱爲「單引號」或「引號」。這些條款更容易搜索。 – keyser

+0

https://code.google.com/p/pyodbc/wiki/GettingStarted#Parameters – user2357112

+2

切勿使用Python字符串替換SQL作爲你的代碼將是開放的SQL注入和其他安全vunerabilities。 –

回答

2

你並不需要在這裏單引號的方式。 pyodbc模塊將爲您處理任何報價。只需使用相應的佔位符(?),然後將參數的元組作爲第二個參數傳遞給.execute()。例如:

import pyodbc 
cnxn = pyodbc.connect('your connection string') 
cursor = cnxn.cursor() 
cursor.execute("""INSERT INTO New_Table(SL, ID, text) 
        VALUES (?,?,?);""", (A[i][0], A[i][1], A[i][2])) 
cursor.close() 
cnxn.close() 

正如在評論中提到,如果改爲使用字符串插值表格你打開你的應用程序多達SQL-Injection攻擊。

+0

感謝伯尼......我做了同樣的事情,cursor.execute(SQL)。我不知道的是使用雙引號三次。無論如何,謝謝 – user2437648

+0

哦,三重報價是針對多行字符串的。別客氣。 – bernie