什么?在 python pyodbc 模块中表示

what does ? mean in python pyodbc module

import pyodbc
cursor.execute("INSERT INTO Testing_Param(Seed_Number,Cycle_Name) VALUES (?,?)",('0','CoupleIn'))

“?”是什么意思?代码中的意思? 当我尝试更换? %s 为“CoupleIn”,它是字符串,%d 为“0”,为什么会出现错误消息:

pyodbc.ProgrammingError: ('The SQL contains 0 parameter markers, but 2 parameters were supplied', 'HY000')

我是 pyodbc 模块的新手,可以将数据从 Python 传输到 Microsoft SQL 服务器

它是参数值“0”和 'Couple' 的占位符。 cursor.execute 将用值代替 ?s。

? 是替换引擎的占位符。 cursor.execute 函数负责正确转义元组中的值并将它们插入到查询中,其中相应的问号将形成有效查询。这使您免受 sql injection attacks 的影响,因为正常的字符串插值会使您的数据库容易受到攻击者的攻击。

您可以在 PEP-0249 中阅读有关标准 python 数据库 api 的更多信息——具体来说,您的数据库包装器正在使用 qmark paramstyle。

两个问号分别是参数0CoupleIn的占位符。 这与 Python 中的文本格式类似,其中变量的占位符是 %

请参阅 Parameters

段下的 http://mkleehammer.github.io/pyodbc/