为啥报错呢?
conn = pymssql.connect(host=host, user=user, password=pwd, database=db)cursor = conn.cursor()
# 插入数据的 SQL 语句
insert_sql = "INSERT INTO BX (Times, TestTime) VALUES (?, ?)"
row =(55, '2023-07-12 14:52:02')
try:
# 执行 SQL 语句并提交更改
cursor.execute(insert_sql, row)
conn.commit()
except pymssql.Error as e:
print("Error occurred: ", e)
finally:
# 关闭游标和连接
cursor.close()
conn.close()
根据你提供的代码,报错可能是因为缺少 pymssql 模块或模块未正确导入。请确保你已经正确安装了 pymssql 模块,并在代码开头添加 import pymssql。
另外,请确保你已经正确填写了 host、user、password 和 database 的值,以连接到正确的数据库。
以下是修正后的代码示例:
import pymssql
host = 'your_host'
user = 'your_user'
password = 'your_password'
database = 'your_database'
conn = pymssql.connect(host=host, user=user, password=password, database=database)
cursor = conn.cursor()
# 插入数据的 SQL 语句
insert_sql = "INSERT INTO BX (Times, TestTime) VALUES (?, ?)"
row = (55, '2023-07-12 14:52:02')
try:
# 执行 SQL 语句并提交更改
cursor.execute(insert_sql, row)
conn.commit()
except pymssql.Error as e:
print("Error occurred: ", e)
finally:
# 关闭游标和连接
cursor.close()
conn.close()
请将 your_host、your_user、your_password 和 your_database 替换为你实际的数据库连接信息。
如果你仍然遇到问题,请提供完整的错误信息,以便我可以更好地帮助你排查问题。 报错如下
Error occurred:(102, b"Incorrect syntax near '?'.DB-Lib error message 20018, severity 15:\nGeneral SQL Server error: Check messages from the SQL Server\n")
rsj0315 发表于 2023-7-12 18:04
报错如下
Error occurred:(102, b"Incorrect syntax near '?'.DB-Lib error message 20018, severity 15 ...
你的问题出在 SQL 查询中的占位符上。在你的插入语句中,你使用了问号 ( ? ) 作为参数的占位符,但在 pymssql 中,这是不正确的。在 pymssql 中,你需要使用%s作为参数的占位符,无论参数的类型是什么。
所以你的插入语句应该是:
insert_sql = "INSERT INTO BX (Times, TestTime) VALUES (%s, %s)"
使用%s作为占位符,pymssql 会自动处理参数的类型转换和转义,从而避免 SQL 注入等问题。这就是为什么我们使用参数化查询,而不是字符串拼接来创建 SQL 查询的原因。
页:
[1]