2024-10-01 00:15:19 发布
网友
非常熟悉使用pymysql和python将参数传递给SELECT语句。只是将其抛出,但是否可以将查询作为参数传递给sql语句?比如:
sqlCmd = """SELECT * from mytable where coadataid=%s""" cur.execute(sqlCmd,("""ANY(SELECT recordid FROM coadata WHERE flowtype='1')""",))
显然,上述方法不起作用,但我正在寻找一种方法,让类似的东西发挥作用。好主意
参数总是被替换为文本值,它们不是将由MySQL计算的表达式。这就是参数阻止SQL注入的原因
您可以使用普通字符串格式将子查询替换为主查询,并使用cursor.execute()参数填充子查询中的值
cursor.execute()
cur.execute(sqlCmd % ("""ANY(SELECT recordid FROM coadata WHERE flowtype=%s)""",), ('1',))
参数总是被替换为文本值,它们不是将由MySQL计算的表达式。这就是参数阻止SQL注入的原因
您可以使用普通字符串格式将子查询替换为主查询,并使用
cursor.execute()
参数填充子查询中的值相关问题 更多 >
编程相关推荐