現在、ユーザーからの入力に応じてSQLクエリを作成しています。これがどのように行われるかの例はここで見ることができます:
def generate_conditions(table_name,nameValues):
sql = u""
for field in nameValues:
sql += u" AND {0}.{1}='{2}'".format(table_name,field,nameValues[field])
return sql
search_query = u"SELECT * FROM Enheter e LEFT OUTER JOIN Handelser h ON e.Id == h.Enhet WHERE 1=1"
if "Enhet" in args:
search_query += generate_conditions("e",args["Enhet"])
c.execute(search_query)
SQLは毎回変更されるため、execute呼び出しに値を挿入できません。つまり、文字列を手動でエスケープする必要があります。しかし、私がすべての人を検索すると、実行するポイントが...
また、クエリの生成方法にも満足していません。そのため、誰かが別の方法について何かアイデアを持っている場合は、それも素晴らしいことです。