how to insert to a mysql table using mysaldb, where the table name is in a python variable?

前端 未结 3 1668
心在旅途
心在旅途 2020-12-16 07:18

I\'m using python-mysql db api to insert some values to a table where the table name is in a python variable. So I wrote the below code

DB_CURSOR.execute(\"\         


        
相关标签:
3条回答
  • 2020-12-16 07:49

    MySQLdb does not care a bit about the names of your variables. If you are having a problem with the table name, try to assign hosts_table to the name of your table, and see if it'll work.

    hosts_table = 'hosts_table'

    Or just print it out and see what table name it's using:

    print hosts_table

    0 讨论(0)
  • 2020-12-16 07:51

    Try something like that:

    DB_CURSOR.execute("""INSERT INTO %s (name,created_by,state,description,docs,admin_email,date_created) VALUES(%s,%s,%s,%s,%s,%s,%s)""" % (hosts_table), (hostname, created_by, state, description, docroot, admin_email, date_created))
    

    I'm not sure it will work but it could :)

    0 讨论(0)
  • 2020-12-16 08:11
    DB_CURSOR.execute("""INSERT INTO %s 
        (name,created_by,state,description,docs,admin_email,date_created) 
        VALUES(%%s,%%s,%%s,%%s,%%s,%%s,%%s)""" % hosts_table,
        (hostname, created_by, state, description, docroot, admin_email, date_created))
    

    Note that the hosts_table variable is a single % sign, and all the other variables are two %% so they are ignored in the initial Python string interpolation, then change to a single % for the mysqldb part.

    Try this in the Python prompt to see what I mean:

    >>> '%%s %s' % 'x'
    '%s x'
    
    0 讨论(0)
提交回复
热议问题