|
tpc at csua.berkeley.edu
tpc at csua.berkeley.edu
Mon Oct 27 14:14:58 EST 2003
hi Grisha and Andy, after consulting with my coworker I believe there is a
bug in how MySQLdb interacts with mod_python that you should know of. He
suggested I try out the same script that was giving me problems with
Python CGI, and it works just fine. The only difference is the values in
the tuple get switched around, so the tuple that is returned is (title,
URL) but no more invalid literal for float, int or long errors. The
critical piece of code in question involves an implementation in Python
of a MySQL SELECT statement of two fields from one table joined to another
table that works just fine from the command line, in MySQL shell, and in
Python CGI:
sql = """SELECT title, url FROM URLs, URLs_WITH_MATCHES WHERE
URLs.id = URLs_WITH_MATCHES.url_id;"""
cursor.execute(sql)
gives me:
<paste>
Mod_python error: "PythonHandler mod_python.publisher"
Traceback (most recent call last):
File "/usr/lib/python2.2/site-packages/mod_python/apache.py", line 335,
in HandlerDispatch
result = object(req)
File "/usr/lib/python2.2/site-packages/mod_python/publisher.py", line
149, in handler
module = apache.import_module(module_name, req.get_config(), [path])
File "/usr/lib/python2.2/site-packages/mod_python/apache.py", line 502,
in import_module
module = imp.load_module(mname, f, p, d)
File "/var/www/html/python/temp-invalidtest.py", line 51, in ?
search(terms)
File "/var/www/html/python/temp-invalidtest.py", line 47, in search
results = getMP3SearchResults(terms)
File "/var/www/html/python/temp-invalidtest.py", line 15, in
getMP3SearchResults
results = getMatchingURLs(cursor)
File "/var/www/html/python/temp-invalidtest.py", line 42, in
getMatchingURLs
cursor.execute(sql)
File "/usr/lib/python2.2/site-packages/MySQLdb/cursors.py", line 95, in
execute
return self._execute(query, args)
File "/usr/lib/python2.2/site-packages/MySQLdb/cursors.py", line 114, in
_execute
self.errorhandler(self, exc, value)
File "/usr/lib/python2.2/site-packages/MySQLdb/connections.py", line 33,
in defaulterrorhandler
raise errorclass, errorvalue
ValueError: invalid literal for float(): <insert any mp3 title here>
</paste>
|