Article View: pl.comp.lang.python
Article #27140Re: Python i MySQL BLOB
From: Daniel Mróz
Date: Tue, 05 Jan 2010 18:15
Date: Tue, 05 Jan 2010 18:15
32 lines
2446 bytes
2446 bytes
On 05.01.2010, Jacek Czerwinski <x@y.z.pl> wrote:
>>>> pick = pickle.dumps("alamakota")
>>>> cur.execute("INSERT INTO test VALUES(10, %s, 3);", (pick,))
>>> A gdybym chciała zrobić coś w stylu:
>>>
>>> cur.execute("INSERT INTO %s VALUES(10, %s, 3);", (nazwa_tabeli,pick))
>>>
>>> to ten sposób znowu zawodzi i pojawia się błąd podobny do poprzedniego.
>> cur.execute("""INSERT INTO %s VALUES(10, %%s, 3)""" % nazwa_tabeli, (pick,))
>>
>> nie zadziała?
> Na dwoje babka wróżyła. W surowych SQL-ach odpowiednik czyli podać
> argumenty i prepare bywa zakazane (podobno ze względu na niewykonalnośc
> prepare). Ale tak sobie gadam.
Nie rozumiem o co chodzi w powyższej wypowiedzi (nie piłem jeszcze kawy), ale
na mój gust powinno to zadziałać, o ile "nazwa_tabeli" nie zawiera jakichś
śmiesznych znaków. "%" podstawi nazwę, zamieni "%%" na "%" i taki string poleci
do cur.execute(), które stanie przed zadaniem zamiany "%s" na zawartość "pick"
wedle swoich zasad.
Jeśli do "nazwa_tabeli" mogą przeniknąć jakieś kwiatki, to można wykorzystać
funkcję, która to naprawi/zepsuje, własnej twórczości, lub użyć tego co dostarcza
biblioteka sterownika bazy (jeśli dostarcza).
Pozdrawiam
Beorn
--
Daniel 'Beorn' Mróz <beorn@alpha.pl> http://127.0.0.1/beorn
[GIT d s:- a-@ C++++ UL++++$ P+ L++++ E--- W+ N+++ o? K- w---]
[O- M- V! PS+ PE++ Y+ PGP++ t- 5 X R !tv b+ DI D++ G++ e h*]
[ r++ y+ ]
Technical Details
Message-ID:
<slrnhk70lt.6v8.beorn@pino.cyberdeck.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!newsfeed.atman.pl!not-for-mailReferences:
<hhvlil$cso$1@achot.icm.edu.pl> <e40b5499-a692-4d1d-bd6d-8dd80f5ae900@c3g2000yqd.googlegroups.com> <hhvp29$gld$1@achot.icm.edu.pl> <slrnhk6q4e.6d2.beorn@pino.cyberdeck.pl> <hhvrc6$6fe$1@news.onet.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!newsfeed.atman.pl!not-for-mail From: Daniel Mróz <beorn@alpha.pl> Newsgroups: pl.comp.lang.python Subject: Re: Python i MySQL BLOB Date: Tue, 5 Jan 2010 18:15:18 +0000 (UTC) Organization: A tak se walimy młotkami d:-/ Lines: 32 Message-ID: <slrnhk70lt.6v8.beorn@pino.cyberdeck.pl> References: <hhvlil$cso$1@achot.icm.edu.pl> <e40b5499-a692-4d1d-bd6d-8dd80f5ae900@c3g2000yqd.googlegroups.com> <hhvp29$gld$1@achot.icm.edu.pl> <slrnhk6q4e.6d2.beorn@pino.cyberdeck.pl> <hhvrc6$6fe$1@news.onet.pl> NNTP-Posting-Host: fw2.itvp.pl Mime-Version: 1.0 X-Trace: node2.news.atman.pl 1262715318 10472 217.17.39.4 (5 Jan 2010 18:15:18 GMT) X-Complaints-To: usenet@atman.pl NNTP-Posting-Date: Tue, 5 Jan 2010 18:15:18 +0000 (UTC) User-Agent: slrn/0.9.8.1pl2.1 (Linux) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit