0
假設我有my_table
在SQL Server這樣的:轉義字符pypyodbc
CREATE TABLE my_table
(col1 VARCHAR(100),
col2 VARCHAR(100),
col3 INT)
我試圖插入一些記錄,以使用Python 3.5和pypyodbc
庫表,如下圖所示:
import pypyodbc
connection = pypyodbc.connect('Driver={SQL Server};' 'Server=12.3.456.789.0123;' 'Database=mydb;' 'uid=me;pwd=mypwd')
cursor= connection.cursor()
data = [{'p1': "I'm hungry", 'p2': "text for col2", 'p3': '1234'}]
for dd in data:
insert_sql = "INSERT INTO my_table (col1,col2,col3) VALUES (%s, %s, %s)"
cursor.execute(insert_sql, (dd['p1'], dd['p2'], dd['p3']))
但是運行上面的代碼時,它返回:
pypyodbc.ProgrammingError: ('HY000', 'The SQL contains 0 parameter markers, but 3 parameters were supplied')
我不知道我做錯了什麼。如果有人能幫我解決這個問題,我將非常感謝幫助!
謝謝!我沒有意識到'pypyodbc'會使用'?'(Python標準字符串格式使用'%'時會出現一些意想不到的情況)。這解決了這個問題。 :) – user1330974