如何使用 python db-api 安全地生成 SQL LIKE 语句 [英] how to safely generate a SQL LIKE statement using python db-api

查看:25
本文介绍了如何使用 python db-api 安全地生成 SQL LIKE 语句的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用 python 的 db-api 组装以下 SQL 语句:

I am trying to assemble the following SQL statement using python's db-api:

SELECT x FROM myTable WHERE x LIKE 'BEGINNING_OF_STRING%';

其中 BEGINNING_OF_STRING 应该是一个 python 变量,可以通过 DB-API 安全地填充.我试过了

where BEGINNING_OF_STRING should be a python var to be safely filled in through the DB-API. I tried

beginningOfString = 'abc'

cursor.execute('SELECT x FROM myTable WHERE x LIKE '%s%', beginningOfString) 
cursor.execute('SELECT x FROM myTable WHERE x LIKE '%s%%', beginningOfString)

我没有想法;这样做的正确方法是什么?

I am out of ideas; what is the correct way to do this?

推荐答案

如果可以,最好将参数与 sql 分开.然后你可以让 db 模块负责正确引用参数.

It's best to separate the parameters from the sql if you can. Then you can let the db module take care of proper quoting of the parameters.

sql='SELECT x FROM myTable WHERE x LIKE %s'
args=[beginningOfString+'%']
cursor.execute(sql,args)

这篇关于如何使用 python db-api 安全地生成 SQL LIKE 语句的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆