- K pouziti, nebude to na webu pujde jen o filtr fora ktery se bude starat o jiste souvztaznosti. jednotlivych prispevku.<br>
No co je to PEP vubec nevim. Rad si necham poradit (nasel jsem toto
<a href="http://www.python.org/dev/peps/pep-0249/">http://www.python.org/dev/peps/pep-0249/</a> a to si v tydnu postupne
prostuduji jen co se mi to povede nekde vytisknout)<br>
- Zda se ze charset v connection a mimo dela to same zrejme to slouzi ke cteni dat z tabulek s jinou znakovou sadou. Kazdopadne jsem si pridal charset do connect<br>- pokud bych smel poprosit o priklad , jak by melo vypadat schema kdy prectu pomoci dotazu hodnotu a zase ji spravne ulozim ?<br>
<br>Ondrej Beranek<br><br><div class="gmail_quote">Dne 18. leden 2009 15:30 Petr Messner <span dir="ltr"><<a href="mailto:petr.messner@gmail.com">petr.messner@gmail.com</a>></span> napsal(a):<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Ahoj,<br>
<br>
execute("sql prikaz a v nem %s" % promennaOdUZivatele) neni osetreno<br>
proti stavu, kdy v promenne budou apostrofy, natoz proti SQL<br>
injection. Vola se to takto: execute("sql prikaz a v nem %s",<br>
promennaOdUZivatele). Ono si to tu operaci "%" (cili naformatovani<br>
nebo jak to chceme nazyvat) provede samo a zaroven to odescapuje<br>
nebezpecne znaky. Viz prislusne PEP, tusim ze je to PEP 249.</blockquote><div><br><br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
<br>
Mimochodem, informace o kodovani se da dat uz funkci MySQLdb.connect.<br>
Databaze pak pracuje s a vraci unicode (tam kde je to relevantni).<br>
conn.set_character_set() mozna dela to same, nevim.</blockquote><div> <br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>
<br>
Problem je, ze '\xa1[' neni validni retezec v kodovani UTF-8. Proto<br>
nefunguje x.decode(). MySQL to mozna take neumi prevest do utf-8,<br>
pokud to neukladas do blobu, ale do napr. textoveho sloupce s<br>
kodovanim utf8, i kdyz ve tvem pripade je to spis tim, ze v c.execute<br>
pouzivas operator %, jak jsem jiz psal, a tudiz problem s prevodem do<br>
utf-8 je uz na strane Pythonu/db ovladace.</blockquote><div><br> <br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>
<br>
Snad jsem nic nepopletl, vyzkousel jsem si to :) Zdravim,<br>
<br>
PM<br>
<br>
Predpokladam, ze pracujeme v Python 2.x.<br>
<br>
2009/1/18 Ondrej Beranek <<a href="mailto:rainbof@gmail.com">rainbof@gmail.com</a>>:<br>
<div><div></div><div class="Wj3C7c">> Tak jsem se dostal ve svem putovani Py svetem k dalsi zahade.<br>
><br>
> pokousim se provest zapis do tabulky ovsem pokud string obsahuje nejake<br>
> nevhodne znaky tak se to neprovede a prevest mi to proste nejde.<br>
><br>
> provadim toto:<br>
><br>
> import _mysql<br>
> import MySQLdb<br>
><br>
> conn = MySQLdb.connect (host = "localhost",<br>
> user = "root",<br>
> passwd = "",<br>
> db = "databaze")<br>
><br>
> conn.set_character_set('utf8')<br>
> spojeni = conn.cursor ()<br>
> x='url=\xa1[img'<br>
><br>
> spojeni.execute("UPDATE databaze.phpbb3_posts SET post_text = '%s' WHERE<br>
> phpbb3_posts.post_id =637797 LIMIT 1 ;"%x)<br>
> spojeni.close()<br>
><br>
> a zde dostanu hlaseni<br>
> "Warning: Incorrect string value: '\xA1[img' for column 'post_text' at row<br>
> 1"<br>
> coz mi teda neni jasne string jako string. navic toto jsem z db prve precetl<br>
> a ted to potrebuju jen vratit zpet na puvodni misto ve tvaru v jakem to tam<br>
> bylo.<br>
><br>
> No rekneme ze tedy neni slusne do databaze cpat unicode ovsem ono to spadne<br>
> i u prevodu<br>
><br>
> print x.decode('utf-8')<br>
><br>
> mi zakrici: UnicodeDecodeError: 'utf8' codec can't decode byte 0xa1 in<br>
> position 4: unexpected code byte<br>
> takze ted nejak nevim kudy kam.<br>
><br>
><br>
</div></div>> _______________________________________________<br>
> Python mailing list<br>
> <a href="mailto:Python@py.cz">Python@py.cz</a><br>
> <a href="http://www.py.cz/mailman/listinfo/python" target="_blank">http://www.py.cz/mailman/listinfo/python</a><br>
><br>
_______________________________________________<br>
Python mailing list<br>
<a href="mailto:Python@py.cz">Python@py.cz</a><br>
<a href="http://www.py.cz/mailman/listinfo/python" target="_blank">http://www.py.cz/mailman/listinfo/python</a><br>
</blockquote></div><br>