2016-04-10 10 views

cevap

0

Karşılaştırmak parantez koyarsanız:

... WHERE ... AND (WatchType = '%s') ORDER BY ... 

o zaman karşılaştırma devre dışı bırakmak için değeri ' OR '' = ' kullanabilirsiniz. Bununla birlikte, SQL sorgusunu SQL enjeksiyonuna karşı savunmasız hale getirmek için oluşturmak kötü bir fikirdir; bunun yerine parametreleri kullanmalısın. WatchType karşılaştırmasını devre dışı bırakmak için, onu yalnız bırakın:

query = """SELECT %s 
      FROM TVShowData 
      WHERE julianday(_Starttime) + (_RunningTime/24.0/60.0) > julianday('now', 'localtime') 
      %s 
      ORDER BY StartTime 
      LIMIT 15""" 
if category: 
    filter = " AND WatchType = ?" 
    parameters = (category,) 
else: 
    filter = "" 
    parameters =() 
query = query % (','.join(properties), filter) 
cur.execute(query, parameters)