Using old example:
csr = con.cursor()
csr.execute('Truncate table test.data')
csr.executemany('INSERT INTO test.data VALUES (?,?,?,?)', Newdata)
con.commit()
How would I insert %s into
csr.executemany('INSERT INTO test.data VALUES (?,?,?,?)', Newdata)
tried:
csr.executemany('INSERT INTO test.%s VALUES (?,?,?,?)', Newdata) % symbol
asked Feb 2, 2011 at 19:58
Merlin
25.8k44 gold badges141 silver badges213 bronze badges
1 Answer 1
Should be:
csr.executemany('INSERT INTO test.%s VALUES (?,?,?,?)' % symbol, Newdata)
Although I would instead do something like:
query = 'INSERT INTO test.%s VALUES (?,?,?,?)' % symbol
csr.executemany(query, Newdata)
Note that ? is not the default placeholder on all database wrappers. In some %s is used instead (mysqldb, psycopg2 for instance). In these cases, It's sometimes simpler to build the query in parts.
Doing:
query = 'INSERT INTO test.%s' % symbol
query += ' VALUES (%s,%s,%s,%s)'
otherwise you would need something like:
query = 'INSERT INTO test.%s VALUES (%%s,%%s,%%s,%%s)' % symbol
which is a pain.
answered Feb 2, 2011 at 20:01
unode
9,7014 gold badges35 silver badges46 bronze badges
Sign up to request clarification or add additional context in comments.
Comments
default