使用python将数据插入MSSQL服务器

amo*_*sai 7 python sql-server

我试图使用以下代码将数据插入sql server表,

import pyodbc
user='sa'
password='PC#1234'
database='climate'
port='1433'
TDS_Version='8.0'
server='192.168.1.103'
driver='FreeTDS'

   con_string='UID=%s;PWD=%s;DATABASE=%s;PORT=%s;TDS=%s;SERVER=%s;driver=%s' % (user,password, database,port,TDS_Version,server,driver)
   cnxn=pyodbc.connect(con_string)
   cursor=cnxn.cursor()
   cursor.execute("INSERT INTO mytable(name,address) VALUES (%s,%s)",('thavasi','mumbai'))
   cnxn.commit()
Run Code Online (Sandbox Code Playgroud)

它在执行时给我以下错误,

   Traceback (most recent call last):
  File "sql.py", line 26, in <module>
  cursor.execute("INSERT INTO mytable(name,address) VALUES (%s,%s)",('thavasi','mumbai'))
 pyodbc.ProgrammingError: ('The SQL contains 0 parameter markers, but 2 parameters were supplied', 'HY000')
Run Code Online (Sandbox Code Playgroud)

我已经检查了insert语句的语法是否正确.那么是什么导致了这个错误

Dsw*_*Wds 5

cursor.execute("INSERT INTO mytable(name,address) VALUES (?,?)",('thavasi','mumbai'))
Run Code Online (Sandbox Code Playgroud)

使用而不是在pyodbc模块中


小智 5

这对我有用。

cursor.execute("INSERT INTO tablename(field1,field2) VALUES(?,?) ", (data1,data2))
Run Code Online (Sandbox Code Playgroud)


itz*_*nTV -1

string这里完成的格式化是错误的。尝试这个

cursor.execute("INSERT INTO mytable(name,address) VALUES (%s,%s)" %('thavasi','mumbai'))
Run Code Online (Sandbox Code Playgroud)

查看http://www.diveintopython.net/native_data_types/formatting_strings.html