import pyodbc
cursor.execute("INSERT INTO Testing_Param(Seed_Number,Cycle_Name) VALUES (?,?)",('0','CoupleIn'))
“?”是什么意思?代码中的意思是?
当我尝试替换 ? %s 代表“CoupleIn”,即字符串,%d 代表“0”,为什么会出现错误消息:
pyodbc.ProgrammingError: ('SQL 包含 0 个参数标记,但提供了 2 个参数', 'HY000')
我是 pyodbc 模块的新手,用于将数据从 Python 传输到 Microsoft SQL Server
?
是替换引擎的占位符。这cursor.execute
函数负责正确转义元组中的值并将它们插入到查询中,其中相应的问号将形成有效的查询。这可以让您免受SQL注入攻击 https://xkcd.com/327/正常的字符串插值会使您的数据库容易受到攻击。
您可以阅读有关标准 python 数据库 api 的更多信息:PEP-0249 https://www.python.org/dev/peps/pep-0249/#paramstyle-- 具体来说,您的数据库包装器正在使用qmark
参数样式。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)