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?