On 6/6/2010 8:29 AM, James Mills wrote:
On Mon, Jun 7, 2010 at 1:07 AM, Victor Subervi<victorsube...@gmail.com>  wrote:
Hi;
I tried this:

     cursor.execute('drop table tmp%s', tmpTable)

and got this error:

    You can only use MySQLdb's parameter substitution for
parameters that are in quotes.

    Right:

        namewanted = "Smith"
        cursor.execute("SELECT name, id FROM tab WHERE name = %s",
         (namewanted,))

        generates the SQL:

          SELECT name, id FROM tab WHERE name = "Smith";
        
        which is valid SQL.

   Wrong:

        tmpTable = "01"
        cursor.execute('drop table tmp%s', tmpTable)

        generates the SQL:

          drop table tmp"01"

        which is not valid SQL.

MySQLdb has no idea what the statement says; it just quotes and escapes
anything it replaces into a "%s" placeholder.

                                        John Nagle




--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to