有时,当我尝试向数据库中插入数据时,会随机出现此错误。我使用request.get并解析JSON数据来获取数据。
这是我得到的错误:
pyodbc.ProgrammingError :(“ 42000”,“ [42000] [Microsoft] [ODBC驱动程序17 for SQL Server] [SQL Server]“ s”附近的语法不正确。 (102) (SQLExecDirectW); [42000] [Microsoft] [用于SQL的ODBC驱动程序17 服务器] [SQL Server]字符串后的右引号 ')'。 (105)“)
这是我的代码:
for product in parsed['products']:
cursor.execute("INSERT INTO dbo.producten (productid, datum_toegevoegd, naam, prijs_excl, prijs_incl, gewicht) VALUES ('%s','%s','%s','%s','%s','%s')" %(product['id'],product['created_at'], product['nl']['title'],product['price_excl'],product['price_incl'],product['weight']))
答案 0 :(得分:3)
不得对SQL查询使用字符串插值。 db-api将为您进行正确的参数替换-用逗号替换%
。
cursor.execute('SELECT.... ', (product['id'],product['created_at'...))
# ^
答案 1 :(得分:1)
cursor.execute('SELECT.... product = ?', (value_for_product))
适用于python 3。^