a question about mysqldb

Fredrik Lundh fredrik at pythonware.com
Thu Aug 14 11:41:13 EDT 2008


Evan wrote:

> a simple problem but I do not know why...:(, could anyone help me?
> 
> MySQLdb nominally uses just the %s placeholder style, in my script, i
> got error if you want to use placeholder(%s) for table name:

Placeholders are supposed to be used for *values*, not other parts of 
the SQL statement.  To insert table names, column names and stuff like 
that, use Python-level formatting.

try doing:

    table = "tmp"
    sql = "select tID,tNote from " + table + " where tID=%s"
    param = [1]
    s.dbptr.execute(sql, param)

 > But sql worked but the I got no query result:
 > ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 > >>> >>> str="select tID,tNote from tmp where %s = %s"
 > >>> >>> e=["tID",int(1)]

the string value "tID" doesn't match an integer with the value 1, so 
that's expected.

</F>




More information about the Python-list mailing list