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

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是整型就可以,如果是浮点型就报错。


回答:

我一般这样:

python">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会自动转换类型的

以上是 python中的pymssql Cursor.execute的参数问题 的全部内容, 来源链接: utcz.com/a/164477.html

回到顶部