Re: [python] Vkladani listu do SQL prikazu

2008-08-15 Tema obsahu Jan Janech
fakt nemam rad, ked niekto nieco komentuje bez toho aby si to poriadne 
precital.

superman wrote:
> Napadlo Vás, že v tom listu může být naprosto cokoli? A že když je tam 
> co nemá být, tak se to dostane do databáze?
> 
> Způsob nabourání se liší od databáze k databázi, ale zkuste si to toho 
> listu dát třeba pro mysql
> 
> nejaky_list = [")", ";drop database jmeno_database;"]
> 
> A máte vymalováno, uvolníte spoustu místa na disku zrušením totálně celé 
> databáze. Můžete odložit nákup nového disku, na kterém už docházelo 
> místo. :-)
> 
> Miloslav Ponkrác
> 
> 
> 
> 
> Jan Janech napsal(a):
>> Osobne tam nevidim nic zle. Nie je to "pitome" riesenie, nakolko sa o 
>> vyplnenie a formatovanie stara DB-API a nie ja. Poprosim o ukazku toho, 
>> ako to dokaze nejaky cracker naburat.
>>
>> superman wrote:
>>   
>>> Já se moc omlouvám, ale proti podobně pitomým řešením se musím ozvat. 
>>> Tedy pokud toužíte po tom dát případnému crackerovi do ruky naprosto 
>>> ideální nástroj k průniku do vašeho systému tak je toto řešení skvělé. A 
>>> pokud takto řešíte listy, tak není pro mě problém vám zvenčí třeba 
>>> zrušit celou databázi a vyčistit vám jí dočista do čista pouhým vstupem 
>>> zvenku jakožto uživatel.
>>>
>>> Nehledě na tom, že na některých vstupech v listech to musí selhat tak 
>>> jako tak.
>>>
>>> Takhle se to nedá dělat!
>>>
>>> Miloslav Ponkrác
>>>
>>> 
> 
> ___
> Python mailing list
> Python@py.cz
> http://www.py.cz/mailman/listinfo/python
> 
> 
> 


-- 


Ing. Jan Janech
Katedra softverovych technologii
Fakulta riadenia a informatiky
Zilinska Univerzita
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] Vkladani listu do SQL prikazu

2008-08-15 Tema obsahu superman
V každé databázi jde zkonstruovat nebezpečný příkaz, v naprosto každé. I 
té vaší "dospělejší" databázi. Je to o to snažší, že jen málokdo zná 
úplnou syntaxi SQL pro daný databázový stroj, a jeho zákoutí. A databáze 
nic nekontroluje, pro ní tím, že jste se přihlásil, a tím, že máte 
potřebná práva na SQL dotaz, a návazné databáze, tabulky, pohledy, a 
další databázové objekty veškerá kontrola končí. Jste nalogovaný a máte 
potřebné role? Databáze dotaz vykoná, ať je jakýkoli.

Omlouvám se, že jsem si dovolil uvést příklad na mysql, příště budu 
uvádět oracle a db2. Sice to většině lidem z konference nebude k užitku, 
ale vyhnu se aspoň narážkám na mysql.

M. Ponkrác

> Dne 15. srpen 2008 11:51 Jaroslav Lukesh <[EMAIL PROTECTED]> napsal(a):
>   
>> tak se nestane vůbec nic, maximálně nějaký ohromný sql error. syntaxe dotazů
>> má jistá pravidla. Ikdyž dětskou hračku mysql nepoužívám, tak nevím jestli
>> to opravdu nedovolí, v kdejaké dospělejší databázi to neprojde.
>>
>> 

___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] Vkladani listu do SQL prikazu

2008-08-15 Tema obsahu Jan Jakubuv
Dne 15. srpen 2008 11:51 Jaroslav Lukesh <[EMAIL PROTECTED]> napsal(a):
> tak se nestane vůbec nic, maximálně nějaký ohromný sql error. syntaxe dotazů
> má jistá pravidla. Ikdyž dětskou hračku mysql nepoužívám, tak nevím jestli
> to opravdu nedovolí, v kdejaké dospělejší databázi to neprojde.
>

Zdravim,

je mozne, ze tento konkretni pripad neni uplne presny, nicmene, to
neznamena, ze obdobnym zpusobem nelze zkonstruovat nebezpecny prikaz
vyhovujici syntaxi. Kdykoliv pouzivate vstup od uzivatele jako soucast
nejakeho systemoveho/databazeveho prikazu je treba byt opatrny. Vzdy
je lepsi (a vetsinou i nutne)  vstup od uzivatele zkontrolovat. Kdyz
uz pro nic jineho tak pro jistotu.

honza.
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] Vkladani listu do SQL prikazu

2008-08-15 Tema obsahu Jan Jakubuv
Dobry den,

Dne 15. srpen 2008 11:39 superman <[EMAIL PROTECTED]> napsal(a):
> nejaky_list = [")", ";drop database jmeno_database;"]
>

Toto bych resil tak, ze bych napred samotne tagy zkontroloval.
Napriklad tak, ze bych z tagu zadanych uzivatelem vymazal vsechny
znaky ktere nejsou cislice nebo pismena:

def check(string):
return filter(lambda x: x.isalpnum(), string) # toto je pouze ukazka

Osetreni vstupu od uzivatele stejnak musite nekde udelat. S osetrenymi
tagy uz bych nakladal stejne jako v puvodnim priklade (akorat bych
mozna pouzil reduce).

honza.
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] Vkladani listu do SQL prikazu

2008-08-15 Tema obsahu Jaroslav Lukesh
tak se nestane vůbec nic, maximálně nějaký ohromný sql error. syntaxe dotazů 
má jistá pravidla. Ikdyž dětskou hračku mysql nepoužívám, tak nevím jestli 
to opravdu nedovolí, v kdejaké dospělejší databázi to neprojde.

- Original Message - 
From: "superman" <[EMAIL PROTECTED]>


Napadlo Vás, že v tom listu může být naprosto cokoli? A že když je tam
co nemá být, tak se to dostane do databáze?

Způsob nabourání se liší od databáze k databázi, ale zkuste si to toho
listu dát třeba pro mysql

nejaky_list = [")", ";drop database jmeno_database;"]

A máte vymalováno, uvolníte spoustu místa na disku zrušením totálně celé
databáze. Můžete odložit nákup nového disku, na kterém už docházelo
místo. :-)

___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] Vkladani listu do SQL prikazu

2008-08-15 Tema obsahu slush
Musim se Honzy zastat, obavam se, ze jste jeho konstrukci uplne nepochopil.
On nevklada pres stringove operace samotne polozky z listu, ale pouze
rozkopirovava string "%s" tak, aby nasledne DB API "vyklofala" jednotlive
polozky listu sama. Je to sice trochu kuriozni reseni, na druhou stranu tam
zadne bezpecnostni riziko opravdu nevidim (a to jsem docela paranoidni).

Marek

Dne 15. srpen 2008 12:39 superman <[EMAIL PROTECTED]> napsal(a):

> Napadlo Vás, že v tom listu může být naprosto cokoli? A že když je tam
> co nemá být, tak se to dostane do databáze?
>
> Způsob nabourání se liší od databáze k databázi, ale zkuste si to toho
> listu dát třeba pro mysql
>
> nejaky_list = [")", ";drop database jmeno_database;"]
>
> A máte vymalováno, uvolníte spoustu místa na disku zrušením totálně celé
> databáze. Můžete odložit nákup nového disku, na kterém už docházelo
> místo. :-)
>
> Miloslav Ponkrác
>
>
>
>
> Jan Janech napsal(a):
> > Osobne tam nevidim nic zle. Nie je to "pitome" riesenie, nakolko sa o
> > vyplnenie a formatovanie stara DB-API a nie ja. Poprosim o ukazku toho,
> > ako to dokaze nejaky cracker naburat.
> >
> > superman wrote:
> >
> >> Já se moc omlouvám, ale proti podobně pitomým řešením se musím ozvat.
> >> Tedy pokud toužíte po tom dát případnému crackerovi do ruky naprosto
> >> ideální nástroj k průniku do vašeho systému tak je toto řešení skvělé. A
> >> pokud takto řešíte listy, tak není pro mě problém vám zvenčí třeba
> >> zrušit celou databázi a vyčistit vám jí dočista do čista pouhým vstupem
> >> zvenku jakožto uživatel.
> >>
> >> Nehledě na tom, že na některých vstupech v listech to musí selhat tak
> >> jako tak.
> >>
> >> Takhle se to nedá dělat!
> >>
> >> Miloslav Ponkrác
> >>
> >>
>
> ___
> Python mailing list
> Python@py.cz
> http://www.py.cz/mailman/listinfo/python
>
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python

Re: [python] Vkladani listu do SQL prikazu

2008-08-15 Tema obsahu superman
Napadlo Vás, že v tom listu může být naprosto cokoli? A že když je tam 
co nemá být, tak se to dostane do databáze?

Způsob nabourání se liší od databáze k databázi, ale zkuste si to toho 
listu dát třeba pro mysql

nejaky_list = [")", ";drop database jmeno_database;"]

A máte vymalováno, uvolníte spoustu místa na disku zrušením totálně celé 
databáze. Můžete odložit nákup nového disku, na kterém už docházelo 
místo. :-)

Miloslav Ponkrác




Jan Janech napsal(a):
> Osobne tam nevidim nic zle. Nie je to "pitome" riesenie, nakolko sa o 
> vyplnenie a formatovanie stara DB-API a nie ja. Poprosim o ukazku toho, 
> ako to dokaze nejaky cracker naburat.
>
> superman wrote:
>   
>> Já se moc omlouvám, ale proti podobně pitomým řešením se musím ozvat. 
>> Tedy pokud toužíte po tom dát případnému crackerovi do ruky naprosto 
>> ideální nástroj k průniku do vašeho systému tak je toto řešení skvělé. A 
>> pokud takto řešíte listy, tak není pro mě problém vám zvenčí třeba 
>> zrušit celou databázi a vyčistit vám jí dočista do čista pouhým vstupem 
>> zvenku jakožto uživatel.
>>
>> Nehledě na tom, že na některých vstupech v listech to musí selhat tak 
>> jako tak.
>>
>> Takhle se to nedá dělat!
>>
>> Miloslav Ponkrác
>>
>> 

___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] Vkladani listu do SQL prikazu

2008-08-15 Tema obsahu Jan Janech
Osobne tam nevidim nic zle. Nie je to "pitome" riesenie, nakolko sa o 
vyplnenie a formatovanie stara DB-API a nie ja. Poprosim o ukazku toho, 
ako to dokaze nejaky cracker naburat.

superman wrote:
> Já se moc omlouvám, ale proti podobně pitomým řešením se musím ozvat. 
> Tedy pokud toužíte po tom dát případnému crackerovi do ruky naprosto 
> ideální nástroj k průniku do vašeho systému tak je toto řešení skvělé. A 
> pokud takto řešíte listy, tak není pro mě problém vám zvenčí třeba 
> zrušit celou databázi a vyčistit vám jí dočista do čista pouhým vstupem 
> zvenku jakožto uživatel.
> 
> Nehledě na tom, že na některých vstupech v listech to musí selhat tak 
> jako tak.
> 
> Takhle se to nedá dělat!
> 
> Miloslav Ponkrác
> 
> 
>> Ahoj,
>>
>> ako najjednoduchsie (a zaroven este ako tak rozumne) riesenie vidim:
>>
>> tmp = ",".join(["%s"]*len(nejakylist))
>> cursor.execute("SELECT WHERE t.tagname IN ("+tmp+")", nejakylist).
>>
>> Popripade, ak sa niekomu nepaci, ze sa tam robi zbytocny zoznam (napr. 
>> mne ;) ), tak to iste cez iteratory:
>>
>> tmp = ",".join("%s" for polozka in nejakylist)
>> cursor.execute("SELECT WHERE t.tagname IN ("+tmp+")", nejakylist).
>>   
> 
> ___
> Python mailing list
> Python@py.cz
> http://www.py.cz/mailman/listinfo/python
> 
> 
> 


-- 


Ing. Jan Janech
Katedra softverovych technologii
Fakulta riadenia a informatiky
Zilinska Univerzita
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] Vkladani listu do SQL prikazu

2008-08-15 Tema obsahu superman
Já se moc omlouvám, ale proti podobně pitomým řešením se musím ozvat. 
Tedy pokud toužíte po tom dát případnému crackerovi do ruky naprosto 
ideální nástroj k průniku do vašeho systému tak je toto řešení skvělé. A 
pokud takto řešíte listy, tak není pro mě problém vám zvenčí třeba 
zrušit celou databázi a vyčistit vám jí dočista do čista pouhým vstupem 
zvenku jakožto uživatel.

Nehledě na tom, že na některých vstupech v listech to musí selhat tak 
jako tak.

Takhle se to nedá dělat!

Miloslav Ponkrác


> Ahoj,
>
> ako najjednoduchsie (a zaroven este ako tak rozumne) riesenie vidim:
>
> tmp = ",".join(["%s"]*len(nejakylist))
> cursor.execute("SELECT WHERE t.tagname IN ("+tmp+")", nejakylist).
>
> Popripade, ak sa niekomu nepaci, ze sa tam robi zbytocny zoznam (napr. 
> mne ;) ), tak to iste cez iteratory:
>
> tmp = ",".join("%s" for polozka in nejakylist)
> cursor.execute("SELECT WHERE t.tagname IN ("+tmp+")", nejakylist).
>   

___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] Vkladani listu do SQL prikazu

2008-08-14 Tema obsahu Jan Janech
Ahoj,

ako najjednoduchsie (a zaroven este ako tak rozumne) riesenie vidim:

tmp = ",".join(["%s"]*len(nejakylist))
cursor.execute("SELECT WHERE t.tagname IN ("+tmp+")", nejakylist).

Popripade, ak sa niekomu nepaci, ze sa tam robi zbytocny zoznam (napr. 
mne ;) ), tak to iste cez iteratory:

tmp = ",".join("%s" for polozka in nejakylist)
cursor.execute("SELECT WHERE t.tagname IN ("+tmp+")", nejakylist).

slush wrote:
> Zdravim vsechny,
> 
> nedavno se tu resilo, jakym zpusobem posilat promenne do SQL. Dostal 
> jsem se k podobnemu problemu - totiz jakym zpusobem vkladat do SQL ne 
> jednotlive retezce, ale cele listy. Uvedu priklad:
> 
> nejakylist = ['tag1', 'tag2']
> cursor.execute("SELECT WHERE t.tagname IN (%s)''', nejakylist)
> 
> Toto samozrejme nefunguje, protoze zastupna promenna "%s" hleda v 
> "nejakylist" pouze string, nikoliv list. Potreboval bych, aby se pole 
> "nejakylist" do SQL vlozilo s nasledujici syntaxi:
> 
> SELECT WHERE t.tagname IN ("tag1","tag2")
> 
> Tady konkretne to resim v Djangu (from django.db import connection), ale 
> myslim, ze to je dotaz i pro obecny Python.
> 
> Diky za kazde nakopnuti,
> Marek
> 
> 
> 
> 
> ___
> Python mailing list
> Python@py.cz
> http://www.py.cz/mailman/listinfo/python


-- 


Ing. Jan Janech
Katedra softverovych technologii
Fakulta riadenia a informatiky
Zilinska Univerzita
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] Vkladani listu do SQL prikazu

2008-08-14 Tema obsahu slush
DB Api Djanga samozrejme znam. Prave proto vim, ze soucasna 1.0 alpha
nezvlada agregovane dotazy. Vzhledem k tomu, ze jeden takovy potrebuji,
musel jsem sahnout po starem dobrem SQL.

Protoze jsem se na tom ale nechtel zaseknout, nakonec jsem to implementoval
pomoci Django DB API a agregacni funkce jsem nasimuloval v Pythonu (fuj!).
Mam to ted v denicku jako velke FIXME, protoze s rustem velikosti tabulek to
zacne byt neunosne pomale :(. Snad mezitim najdu nejake elegantnejsi reseni.

Marek

2008/8/14 Tomas Fulajtar <[EMAIL PROTECTED]>

> Zdravim,
>
> pokud se to ma pouzivat v Djangu, tak se podivejte do dokumentace na sekci
>
> http://www.djangoproject.com/documentation/db-api/#field-lookups
>
> viz IN.
>
> Napr. pro objekt Osoba, chci fitrovat jmena:
>
> Osoba.objects.filter(jmeno_in=["Karel","Pepa"])
>
>
> Tomas Fulajtar
>
>
> --- On Thu, 8/14/08, slush <[EMAIL PROTECTED]> wrote:
>
> > From: slush <[EMAIL PROTECTED]>
> > Subject: Re: [python] Vkladani listu do SQL prikazu
> > To: "Konference PyCZ" 
> > Date: Thursday, August 14, 2008, 4:32 PM
> > >
> > > > [tag for tag in nejakylist]
> > >
> > >
> > Tohle jsem mozna nepochopil. Nevim, co bych tim mel ziskat.
> >
> > > cursor.execute("SELECT WHERE t.tagname IN
> > (%s)", join(nejakylist,
> > "','") )
> >
> > tohle je samozrejme prvni vec, ktera me napadla. Problem je
> > SQL injection.
> > Muselo by se to resit manualne a ja neverim, ze to sql
> > rozhrani s moznosti
> > listu nepocita.
> >
> > > prevedte list na string a oholte mu ty hranaté
> > závorky
> >
> > Tohle reseni je zajimave! Jen ne moc elegantni :). No pokud
> > se nepovede nic
> > lepsiho, zkusim to touhle cestou.
> >
> > Zatim,
> > Marek
> > ___
> > Python mailing list
> > Python@py.cz
> > http://www.py.cz/mailman/listinfo/python
>
>
>
> ___
> Python mailing list
> Python@py.cz
> http://www.py.cz/mailman/listinfo/python
>
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python

Re: [python] Vkladani listu do SQL prikazu

2008-08-14 Tema obsahu Tomas Fulajtar
Zdravim,

pokud se to ma pouzivat v Djangu, tak se podivejte do dokumentace na sekci 

http://www.djangoproject.com/documentation/db-api/#field-lookups

viz IN.  

Napr. pro objekt Osoba, chci fitrovat jmena:

Osoba.objects.filter(jmeno_in=["Karel","Pepa"])


Tomas Fulajtar


--- On Thu, 8/14/08, slush <[EMAIL PROTECTED]> wrote:

> From: slush <[EMAIL PROTECTED]>
> Subject: Re: [python] Vkladani listu do SQL prikazu
> To: "Konference PyCZ" 
> Date: Thursday, August 14, 2008, 4:32 PM
> >
> > > [tag for tag in nejakylist]
> >
> >
> Tohle jsem mozna nepochopil. Nevim, co bych tim mel ziskat.
> 
> > cursor.execute("SELECT WHERE t.tagname IN
> (%s)", join(nejakylist,
> "','") )
> 
> tohle je samozrejme prvni vec, ktera me napadla. Problem je
> SQL injection.
> Muselo by se to resit manualne a ja neverim, ze to sql
> rozhrani s moznosti
> listu nepocita.
> 
> > prevedte list na string a oholte mu ty hranaté
> závorky
> 
> Tohle reseni je zajimave! Jen ne moc elegantni :). No pokud
> se nepovede nic
> lepsiho, zkusim to touhle cestou.
> 
> Zatim,
> Marek
> ___
> Python mailing list
> Python@py.cz
> http://www.py.cz/mailman/listinfo/python


  
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] Vkladani listu do SQL prikazu

2008-08-14 Tema obsahu slush
>
> > prevedte list na string a oholte mu ty hranaté závorky
>
> Tohle reseni je zajimave! Jen ne moc elegantni :). No pokud se nepovede nic
> lepsiho, zkusim to touhle cestou.
>

Tak ne, tohle neni cesta, kterou bych se chtel vydat. Pripada mi, ze vstup
od uzivatele by mel byt osetreny robustneji nez nejake hratky s orezavanim
stringu.

Jeden z prvnich problemu, na ktery jsem totiz narazil byl napriklad list
unicode stringu. Tam to nefungovalo a vyzadovalo by to dalsi hacky.

Marek
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python

Re: [python] Vkladani listu do SQL prikazu

2008-08-14 Tema obsahu slush
>
> > [tag for tag in nejakylist]
>
>
Tohle jsem mozna nepochopil. Nevim, co bych tim mel ziskat.

> cursor.execute("SELECT WHERE t.tagname IN (%s)", join(nejakylist,
"','") )

tohle je samozrejme prvni vec, ktera me napadla. Problem je SQL injection.
Muselo by se to resit manualne a ja neverim, ze to sql rozhrani s moznosti
listu nepocita.

> prevedte list na string a oholte mu ty hranaté závorky

Tohle reseni je zajimave! Jen ne moc elegantni :). No pokud se nepovede nic
lepsiho, zkusim to touhle cestou.

Zatim,
Marek
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python

Re: [python] Vkladani listu do SQL prikazu

2008-08-14 Tema obsahu Jaroslav Lukesh
prevedte list na string a oholte mu ty hranaté závorky

- Original Message - 
From: slush

nedavno se tu resilo, jakym zpusobem posilat promenne do SQL. Dostal jsem se 
k podobnemu problemu - totiz jakym zpusobem vkladat do SQL ne jednotlive 
retezce, ale cele listy. Uvedu priklad:

nejakylist = ['tag1', 'tag2']
cursor.execute("SELECT WHERE t.tagname IN (%s)''', nejakylist)

Toto samozrejme nefunguje, protoze zastupna promenna "%s" hleda v 
"nejakylist" pouze string, nikoliv list. Potreboval bych, aby se pole 
"nejakylist" do SQL vlozilo s nasledujici syntaxi:

SELECT WHERE t.tagname IN ("tag1","tag2")


___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] Vkladani listu do SQL prikazu

2008-08-14 Tema obsahu azurIt
je to trochu salamunske riesenie, ale napada ma toto (neskusal som, mozno sa 
tam objavi nejaky problem):

from string import join

cursor.execute("SELECT WHERE t.tagname IN (%s)", join(nejakylist, "','") )

tzn. urobis z toho listu nieco ako tag1','tag2','tag3 a toto nasledne hodis 
MySQLdb. ten by to tam mal vlozir ako 'tag1','tag2','tag3' (teda na zaciatok a 
na koniec prida ' )


-----Pôvodná správa-
Od: slush [EMAIL PROTECTED]
Komu: "Konference PyCZ" 
Predmet: [python] Vkladani listu do SQL prikazu



Zdravim vsechny,

nedavno se tu resilo, jakym zpusobem posilat promenne do SQL. Dostal jsem se k 
podobnemu problemu - totiz jakym zpusobem vkladat do SQL ne jednotlive retezce, 
ale cele listy. Uvedu priklad:
 
nejakylist = ['tag1', 'tag2']
cursor.execute("SELECT WHERE t.tagname IN (%s)''', nejakylist)

Toto samozrejme nefunguje, protoze zastupna promenna "%s" hleda v "nejakylist" 
pouze string, nikoliv list. Potreboval bych, aby se pole "nejakylist" do SQL 
vlozilo s nasledujici syntaxi:
 
SELECT WHERE t.tagname IN ("tag1","tag2")

Tady konkretne to resim v Djangu (from django.db import connection), ale 
myslim, ze to je dotaz i pro obecny Python.

Diky za kazde nakopnuti,
 Marek

 

___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] Vkladani listu do SQL prikazu

2008-08-14 Tema obsahu Tomas Brabenec
nakopnu ;-)


[tag for tag in nejakylist]


Tomas


Dne 14.8.2008 14:40, slush napsal(a):
> Zdravim vsechny,
>
> nedavno se tu resilo, jakym zpusobem posilat promenne do SQL. Dostal 
> jsem se k podobnemu problemu - totiz jakym zpusobem vkladat do SQL ne 
> jednotlive retezce, ale cele listy. Uvedu priklad:
>
> nejakylist = ['tag1', 'tag2']
> cursor.execute("SELECT WHERE t.tagname IN (%s)''', nejakylist)
>
> Toto samozrejme nefunguje, protoze zastupna promenna "%s" hleda v 
> "nejakylist" pouze string, nikoliv list. Potreboval bych, aby se pole 
> "nejakylist" do SQL vlozilo s nasledujici syntaxi:
>
> SELECT WHERE t.tagname IN ("tag1","tag2")
>
> Tady konkretne to resim v Djangu (from django.db import connection), 
> ale myslim, ze to je dotaz i pro obecny Python.
>
> Diky za kazde nakopnuti,
> Marek
>
> 
>
> ___
> Python mailing list
> Python@py.cz
> http://www.py.cz/mailman/listinfo/python
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


[python] Vkladani listu do SQL prikazu

2008-08-14 Tema obsahu slush
Zdravim vsechny,

nedavno se tu resilo, jakym zpusobem posilat promenne do SQL. Dostal jsem se
k podobnemu problemu - totiz jakym zpusobem vkladat do SQL ne jednotlive
retezce, ale cele listy. Uvedu priklad:

nejakylist = ['tag1', 'tag2']
cursor.execute("SELECT WHERE t.tagname IN (%s)''', nejakylist)

Toto samozrejme nefunguje, protoze zastupna promenna "%s" hleda v
"nejakylist" pouze string, nikoliv list. Potreboval bych, aby se pole
"nejakylist" do SQL vlozilo s nasledujici syntaxi:

SELECT WHERE t.tagname IN ("tag1","tag2")

Tady konkretne to resim v Djangu (from django.db import connection), ale
myslim, ze to je dotaz i pro obecny Python.

Diky za kazde nakopnuti,
Marek
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python