Предположим, что у меня есть my_table
в SQL Server, как это:Экранирование символов в строке SQL для 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