What is the proper way to escape input using pyodbc or pypyodbc?
I have two examples using ?
and using %s
. Which is preferred, and why don't both examples work?
First example using ?
cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=127.0.0.1;DATABASE=db;UID=sa;PWD=password')
cursor = cnxn.cursor()
sql = "insert into table(col1,col2) values(?,?)"
cursor.execute(sql,(val1,val2))
Second example using %s
cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=127.0.0.1;DATABASE=db;UID=sa;PWD=password')
cursor = cnxn.cursor()
sql = "insert into table(col1,col2) values(%s,%s)" % (val1,val2)
cursor.execute(sql)