如何修复使用 pymssql 插入 sql DB 的错误
Posted
技术标签:
【中文标题】如何修复使用 pymssql 插入 sql DB 的错误【英文标题】:How to fix error inserting into sql DB using pymssql 【发布时间】:2018-09-07 01:26:58 【问题描述】:我正在编写一个函数,它将用 Python 中的 tweepy 提取的推文存储到数据库(SQL 服务器)中。我已经编写了以下代码以插入到 SQL DB 中
conn = pymssql.connect(host,user,passwd,DB)
cursor = conn.cursor()
def insertTweet(user,text,image):
query = "INSERT INTO [TWEETS].[dbo].[TWEET_INFO] ]
(username,text,image_url,approved)\
values (user, text, image, 0)"
cursor.execute(query)
这是一个非常简单的函数,它不应该真的给出错误,但我确实得到一个说 text 是无效的列名。 :
Traceback (most recent call last):
File "db_connect.py", line 35, in <module>
insertTweet(user,text,image)
File "db_connect.py", line 19, in insertTweet
cursor.execute(query)
File "src\pymssql.pyx", line 465, in pymssql.Cursor.execute
pymssql.ProgrammingError: (207, b"Invalid column name 'text'.DB-Lib error
messag
e 20018, severity 16:\nGeneral SQL Server error: Check messages from the SQL
Ser
ver\nDB-Lib error message 20018, severity 16:\nGeneral SQL Server error:
Check m
essages from the SQL Server\n")
以下是数据库结构:
SELECT TOP 1000 [Id]
,[username]
,[text]
,[image_url]
,[approved]
FROM [TWEETS].[dbo].[TWEET_INFO]
我不确定如何解决这个问题。我可以通过在 sql studio 中手动运行查询来添加
【问题讨论】:
【参考方案1】:尝试这样做, 假设 conn 是您与数据库的连接
query = ("INSERT INTO billed_items(item_name,billed_qty,price,item_bill_series) VALUES(%s,%s,%s,%s)")
c.execute(query,((name),(no),(price),(series))
conn.commit()
【讨论】:
成功了!我不知道为什么。我一直在使用我提到的格式。 对不起,以上没有用。以上是关于如何修复使用 pymssql 插入 sql DB 的错误的主要内容,如果未能解决你的问题,请参考以下文章
python中pymssql如何向sql server插入数据 插入的值可以用变量替换
如何使用pymssql python插入但忽略相同的日期标签
使用 python pymssql 将二进制文件插入 MSSQL db (varbinary)