MySQLdb, lots of columns and newb-ness

Andrew Sackville-West andrew at farwestbilliards.com
Wed Dec 20 14:14:42 EST 2006


On Wed, Dec 20, 2006 at 09:22:59AM +0100, Fredrik Lundh wrote:
> Andrew Sackville-West wrote:
> 
> > I've also tried building tuples and lists and then using this
> > 
> > cursor.execute("insert into daily values (%s)", values)
> > 
> > with no luck. it appears to me that I have to put in all 132 '%s' in
> > order to make that work and that just seems stupid. 
> 
> on the other hand, hackers just *love* people who think they're too 
> clever to do things in a safe and robust way:
> 
>    http://en.wikipedia.org/wiki/SQL_injection

good point. when I go for world domination and put this thing on the
web, I'll watch for that ;-). seriously though, this is merely an
internal operation in my one man show where I can more easily access
historical sales data. 
> 
> using parameterized inserts also speeds things up for many databases, 
> since the database engine don't have to parse and and analyze the sql 
> statement over and over and over again.
> 
> to quickly generate the parameter list, use string repeat to create the 
> parameter list:
> 
>    params = "(" + ",".join(["%s"]*len(values)) + ")"
>    cursor.execute("insert into daily values " + params, values)
> 

okay. this is great. thanks!

> you probably want to do some normalization work on your database too, 
> but that's another story.
> 

indeed. there is definitely some duplicated data, or rather derived
data (if that's the right term), but not a whole lot. I suppose I will
get to that sooner or later. first thing, for me, is to get the data
into something more useable than a bunch of flat files on another
machine on my lan. 

thanks a bunch for your pointers.

A
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 196 bytes
Desc: Digital signature
URL: <http://mail.python.org/pipermail/python-list/attachments/20061220/03178150/attachment.sig>


More information about the Python-list mailing list