|
Jorey Bump
list at joreybump.com
Tue Sep 20 19:11:25 EDT 2005
Daniel Winkler wrote:
> Hello Jorey,
>
> Am Dienstag, den 20.09.2005, 17:58 -0400 schrieb Jorey Bump:
>
>
>>You're mixing python string replacement with placeholders. You need to
>>escape the placeholders (and the semicolon isn't necessary here):
>>
>>acl.execute("SELECT * FROM acl WHERE c = %%s AND d = %%s", (cID, dID))
>
>
> What kind of "placeholders" do you mean? Just to be sure: I did not want
> to use SQL placeholders. Okay, I tried your version, but unfortunately
> the error was the same ...
>
> Thanks for your quick answer. Any other ideas? :-)
Note to self: test answers before dispensing bad advice. I'm the
confused one here, it's only necessary to escape placeholders when
*contructing* queries with python string replacement, i.e.:
table = "acl"
query = "SELECT * FROM %s WHERE c = %%s AND d = %%s" % (table)
acl = db.cursor()
acl.execute(query, (cID, dID))
So, the structure of your original query is fine, uses SQL placeholders
(a good thing), and you indicate that it works in the interactive
interpreter. Can you provide a little more of the code?
|