[mod_python] Problem with html quoted/unquoted

Wouter van Marle wouter at squirrel-systems.com
Tue May 23 02:22:58 EDT 2006


On Tue, 2006-05-23 at 01:49 -0400, Joshua Ginsberg wrote:
> Wouter --
> 
> You used % to do string substitution on the first argument to execute() 
> as opposed to passing a tuple as a second argument to execute().

I don't get your meaning.
Can you please give me the lines of code as example? Thanks!

Wouter.

> 
> -jag
> 
> On May 22, 2006, at 11:50 PM, Wouter van Marle wrote:
> 
> > On Tue, 2006-05-23 at 11:18 +0800, Wouter van Marle wrote:
> >> On Wed, 2006-05-17 at 18:09 -0400, Jim Gallacher wrote:
> >>>>> cur.execute("SELECT * FROM base WHERE field = %s", s)
> >>>>
> >>>> I have tried this (once) with MySQLdb, and it doesn't seem to work
> >>> like
> >>>> that. (v1.2.1g2) Didn't pursue the issue further.
> >>>
> >>> You must be doing something wrong. A quick test on my system:
> >>>
> >>>>>> s = """This is 'some' stuff with "quotes" and stuff"""
> >>>>>> cursor.execute('insert into testtable (data) values (%s)', s)
> >>> 1L
> >>
> >> Just tried it for myself - it works now.
> >
> > RRrrrriiiiigggghhhttt.... that said.... I just tried again... and now
> > have a fail. Now I also remember why I didn't use that method yet :)
> >
> > - Debian Sarge, MySQLdb 1.2.1g2: works fine.
> > - Mandriva Linux LE2005 (v10.2), MySQLdb 1.2.1g3: gives SQL error on
> > this one.
> >
> >>>> cursor.execute("INSERT INTO testtable (field1) VALUES ('This is a
> > string!');")
> > 1L
> >>>> cursor.execute("INSERT INTO testtable (field1) VALUES (%s);"% s)
> >
> > Traceback (most recent call last):
> >   File "<pyshell#15>", line 1, in -toplevel-
> >     cursor.execute("INSERT INTO testtable (field1) VALUES (%s);"% s)
> >   File "/usr/lib/python2.4/site-packages/MySQLdb/cursors.py", line 137,
> > in execute
> >     self.errorhandler(self, exc, value)
> >   File "/usr/lib/python2.4/site-packages/MySQLdb/connections.py", line
> > 33, in defaulterrorhandler
> >     raise errorclass, errorvalue
> > ProgrammingError: (1064, 'You have an error in your SQL syntax; check
> > the manual that corresponds to your MySQL server version for the right
> > syntax to use near \'\'some\' stuff with "quotes" and stuff)\' at line
> > 1')
> >
> > - Mandriva Linux 2006.0, MySQLdb 1.2.0final: works fine.
> >
> > So there is a serious bug in MySQLdb as well; seems to be the 1.2.1g3
> > version.
> >
> > Wouter.
> >
> >> Maybe I had an older version of MySQLdb when testing? I don't know
> >> anymore. I'll follow your advice and fix my code!
> >>
> >> And after that the info in the databases... that's going to be a 
> >> harder
> >> job.
> >>
> >> Wouter.
> >>
> >>
> >> _______________________________________________
> >> Mod_python mailing list
> >> Mod_python at modpython.org
> >> http://mailman.modpython.org/mailman/listinfo/mod_python
> >>
> >>
> >
> > _______________________________________________
> > Mod_python mailing list
> > Mod_python at modpython.org
> > http://mailman.modpython.org/mailman/listinfo/mod_python
> 
> 



More information about the Mod_python mailing list