Is there a maximum size to a Python program?
Duncan Booth
duncan.booth at invalid.invalid
Mon Apr 27 06:05:49 EDT 2009
Lawrence D'Oliveiro <ldo at geek-central.gen.new_zealand> wrote:
> In message <gt3fv1$1aci$1 at news.ett.com.ua>, Paul Hemans wrote:
>
>> One problem though that I didn't mention in my original
>> posting was that the replication may only require updating one or
>> more fields, that is a problem with a generating a single SQL
>> statement to cover all requests.
>
> That's not a big issue. Assume the field names and corresponding
> values are coming from a Python dict, eg
>
> FieldValues = \
> {
> "field1" : ... value1 ...;
> "field2" : ... value2 ...;
> }
>
> then you can construct an SQL statement on the fly with something like
>
> sqlcmd = \
> (
> "insert into my_table set "
> +
> ", ".join
> (
> "%s = %s" % (k, SQLString(FieldValues[k]))
> for k in FieldValues.keys()
> )
> )
>
> where SQLString is as defined at
><http://codecodex.com/wiki/index.php?
title=Useful_MySQL_Routines#Quoting
>>.
>
>
Not so nice if the input data is something like:
FieldValues = { "field1=0);DROP my_table;": "" }
So you want something to validate fieldnames.
Also you are assuming that all the values are strings: if you want to
handle different data types correctly it is probably simpler to insert
parameter placeholders in the dynamic sql statement and just pass
FieldValues.items() to the execute method.
--
Duncan Booth http://kupuguy.blogspot.com
More information about the Python-list
mailing list