[Python-de] pysqlite3 --- select ... where like ...

Michael Perscheid michaelperscheid at googlemail.com
Mi Jun 18 07:27:21 UTC 2008


Matthias Huening schrieb:
> Hallo,
> 
> in der pysqlite3-Doku (Python 2.5) steht zu lesen:
> 
>> # Never do this -- insecure!
>> symbol = 'IBM'
>> c.execute("... where symbol = '%s'" % symbol)
>>
>> # Do this instead
>> t = (symbol,)
>> c.execute('select * from stocks where symbol=?', t)
> 
> 
> Okay. Geht ja auch meistens.
> Aber wie schreibe ich denn dann sowas:
> 
> "select * from xxx where aaa like '%%%s%%' or bbb like '%%%s%%'" % (a, b)
> 
> Dies funktioniert, aber irgendwie will es bei mir nicht mit dem 
> ?-Platzhalter...
> 
> Schöne Grüße, Matthias
> 
> 
> _______________________________________________
> python-de maillist  -  python-de at python.net
> http://python.net/mailman/listinfo/python-de
> 

Diesbezüglich habe ich auch noch schnell eine Frage... kann man den 
?-Operator auch an der Stelle für den Tabellennamen benutzen? Denn dort 
gelingt mir nur die String Verkettung, was aber zu leichter SQL 
Injection führen kann.

Freundliche Grüße
Micha