python中的pymssql Cursor.execute的参数问题

看说明中这个函数有两个参数,operation和param,是配合使用的,在operation中指定格式化占位符(%s或%d),然后在param中指定值,占位符只支持%s和%d,如果是浮点数,不知道该怎么指定,%s和%d都试了,不行。sql语句:insert into dbms_cat(ct_id,ct_name,ct_value,ct_desc) values(%s,%s,%d,%s),如果ct_value是整型就可以,如果是浮点型就报错。

阅读 5.1k
2 个回答
新手上路,请多包涵

我一般这样:

cursor.execute(f"insert into t (a, b) values ('{text_value}', {float_value})")

也就是根据字段类型自己加上单引号,没搞过参数化的,因为没考虑注入问题。
用过cx_Oracle参数化的,是这个样的:

cursor.execute(f"insert into t (a, b) values (:a, :b)", a=text_value, b=float_value)

是否加单引号是cx_Oracle根据字段类型自动的,估计pymssql类似?

直接用%s就行了,mysql会自动转换类型的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题