title: 'Not all arguments converted during string formatting' for executemany()
body: <p>I want to insert multiple datasets through an INSERT command into a MySQL table. For this I defined following method:</p>
  
  <pre><code>def addRecords(self, records):
      """Add a list of shop -&gt; filename entries into the records"""
      import pprint
      pprint.pprint(records)
      self.cursor.executemany("""
          INSERT INTO foo_records ('shop_id', 'filename', 'missing_since', 'last_reported')
          VALUES (?, ?, NOW(), NOW())
          """, records)
  </code></pre>
  
  <p>When I execute this I get <code>TypeError: not all arguments converted during string formatting</code> for the line calling <code>executemany</code>.</p>
  
  <p>'shop_id' is an INT(11) at mysql and 'filename' is defined as VARCHAR(60).</p>
  
  <p>The content of <code>records</code> looks like:</p>
  
  <pre><code>[(1234, u'foo.csv'),
   (1234, u'bar.csv'),
   ..
   (1456, u'foobar.txt')]
  </code></pre>
  
  <p>What am I missing here?</p>
  
  <p>Edit: I had a dumb mistake at the SQL. The column names were embedded in <code>'</code>.  When I deleted them it worked with <code>%s</code> instead of <code>?</code>. </p>