什么?在 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。
两个问号分别是参数0
和CoupleIn
的占位符。
这与 Python 中的文本格式类似,其中变量的占位符是 %
。
请参阅 Parameters
段下的 http://mkleehammer.github.io/pyodbc/
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。
两个问号分别是参数0
和CoupleIn
的占位符。
这与 Python 中的文本格式类似,其中变量的占位符是 %
。
请参阅 Parameters