Ja samozrejme nehovorim o klasickom formatovani ale o sposobe, akym to robi MySQLdb (pretoze o nom sa bavime) - a tam teda naozaj nevidim dovod, preco by sa nemohlo pouzit '%s'.
Ak sa nenahnevas slush, tak ta malo poupravim nech tu nelieta chybny kod v konfere. Parametre musia ist ako tuple, cize: "SELECT * FROM blabla WHERE promenna=%s", (promenna,) # ano, ta ciarka v zatvorke je tam ok, musi tam v tomto pripade byt -----Pôvodná správa----- Od: slush [sl...@slush.cz] Komu: Konference PyCZ Predmet: Re: [python] hash, mysql Tady vidim vzajemne nepochopeni. Jak je videt, bezpecnostni diry v aplikacich casto zavisi i na jedinem znaku :-). Porovnejte nasledujici: "SELECT * FROM blabla WHERE promenna='%s'" % promenna "SELECT * FROM blabla WHERE promenna=%s", promenna Uz je videt ten rozdil? Prvni radek je klasicke python prirazeni - zadne pridavani uvozovek, zadna ochrana proti SQL injection apod. Druhy priklad, jako jednotlive parametry predavane do funkce knihovny MySQLdb, jiz toto vse resi. Jediny rozdil je v carce versus procentu. Marek 2009/3/20 Dan Pressl <nu.f...@gmail.com> Prekvapuje me to, ze %s v kombinaci s % provadi, pokud dobre vim, jenom nahrazeni %s nejakym retezcem. Z sqlite3 sem zvykly pouzivat ? misto %s prave kvuli odstraneni moznosti SQL Injection, aby prave nedoslo k nahrazeni retezcem, ktery by nemusel byt zrovna koser:) _______________________________________________ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python