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 Server
最佳答案
?
是替换引擎的占位符。 cursor.execute
函数负责正确转义元组中的值,并将它们插入查询中,其中相应的问号将形成有效查询。这使您免受 sql injection attacks 的伤害普通的字符串插值会使您的数据库容易受到攻击者的攻击。</p>
您可以在 PEP-0249 中阅读更多关于标准 python 数据库 api 的信息-- 具体来说,您的数据库包装器正在使用 qmark
paramstyle。
关于python - 什么?在 python pyodbc 模块中意味着,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35885053/