gpt4 book ai didi

python - 如何使用 python 使用准备好的语句 "select from xxx where xxx"

转载 作者:行者123 更新时间:2023-11-29 13:55:49 24 4
gpt4 key购买 nike

我使用字典来存储条件,键的数量和值不固定,例如

dict = {}
dict['v1'] = 'abc'
dict['v2'] = 123
...
dict['vn'] = xxx

我的sql格式是

select * from tablename where v1 = 'abc' and v2 = 123 and ... vn = xxx

我尝试先将sql变成这样:

sql = "select * from tablename where v1 = %s and v2 = %s and ... vn = %s"

下面的格式可以避免sql注入(inject),问题是我不知道值的数量,如何编写这个准备好的语句。提前致谢。

cursor.execute(sql, dict[v1], dict[v2], ..., dict[vn])

最佳答案

也许有点过头了,但你可以使用优秀的 SqlAlchemy图书馆:

from sqlalchemy.sql import select
from sqlalchemy import create_engine, MetaData, Table
engine = create_engine('mysql://your_connection_string')
meta = MetaData()
table = Table('table_name', meta, autoload=True, autoload_with=engine)
s = select([table])
for key, val in dict.items():
s = s.where(getattr(table.c, key)==val)
for row in conn.execute(s):
print row

如果您计划在 Python 中执行大量 SQL,这可能是值得的。

http://docs.sqlalchemy.org/en/latest/core/tutorial.html

关于python - 如何使用 python 使用准备好的语句 "select from xxx where xxx",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15883863/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com