python - 什么?在 python pyodbc 模块中意味着

标签 python sql-server 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 Server

最佳答案

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

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

关于python - 什么?在 python pyodbc 模块中意味着,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35885053/

相关文章:

python - 矩阵在 Python Numpy 中变为 (3,) 而不是 (6,3)

python - 如何在 matplotlib 中向水平条形图添加标签?

sql-server - 如何使用sql查询从当前日期获取2年前的日期

sql-server - 在递归 SQL 查询上对多个父/子进行排序

python - 先前工作配置的 django-pyodbc-azure 回滚错误 - 第 389 行

python - Pyephem 是observer.compute() 错误或数据类型错误的示例吗?

python - 如何删除 django 中的用户创建表单指令

sql-server - 400 份报告的通用标题

python - 尝试使用 pyodbc 和 tkinter 将记录插入 SQL Server

python - pyodbc sqlserver游标小数四舍五入