title: Inserting data into SQLite database fails with sqlite3.InterfaceError: Error binding parameter 0 - probably unsupported type
body: <p>I have looked through quite a lot of the ones raised on this site and unless I am being dense ( Which who knows), I don't think they quite replicate my issue.</p>
  <p>First let me start with some Code snippets</p>
  <p>table</p>
  <pre><code>         CREATE TABLE IF NOT EXISTS moves(
                 ID INTEGER PRIMARY KEY AUTOINCREMENT,
                 name char(20),
                 type char(10),
                 category char(10),
                 desc char(200),
                 share char(3),
                 priority char(5),
                 damage_dice char(5),
                 cool_down char(8),
                 accuracy char(100),
                 effect char(200),
                 move_target char(50),
                 makes_contact char(3),
                 contest_cat char(10)
           )''')
  </code></pre>
  <p>The insert function</p>
  <pre><code>def insert_moves(move):
      c = dbConn.cursor()
      statement = '''insert into moves values(?,?,?,?,?,?,?,?,?,?,?,?,?,?)'''
      try:
          c.execute(statement,(move[0], str(move[1]), str(move[2]), str(move[3]), str(move[4]),
           str(move[5]), str(move[6]), str(move[7]), str(move[8]), str(move[9]), str(move[10]),
           str(move[11]), str(move[12]), str(move[13]),))
          dbConn.commit()
          return True, ''
      except Exception as e:
          return False, e
  </code></pre>
  <p>Now, let me show you the stack trace and as part of that, you will see the printed output of move before its passed into the datebase function.</p>
  <p>Now, this is the output</p>
  <pre><code>[1, 'Attack Order', 'Bug', 'Physical', 'The user calls out its underlings to pummel the target.', 'Yes', '-', '1d6', '1 Turn', '100', 'Attack Order deals damage and has an increased critical hit ratio of 50 percent', 'Targets a single adjacent Pokemon.', 'No', 'Clever']
  Ignoring exception in command update_moves:
  Traceback (most recent call last):
    File &quot;/usr/local/lib/python3.6/site-packages/discord/ext/commands/core.py&quot;, line 85, in wrapped
      ret = await coro(*args, **kwargs)
    File &quot;/projects/pokebot/gsheet.py&quot;, line 59, in update_moves
      result, error2 = db.insert_moves(moves)
    File &quot;/projects/pokebot/db.py&quot;, line 103, in insert_moves
      c.execute(statement,(move[0], str(move[1]), str(move[2]), str(move[3]), str(move[4]), str(move[5]), str(move[6]), str(move[7]), str(move[8]), str(move[9]), str(move[10]), str(move[11]), str(move[12]), str(move[13]),))
  sqlite3.InterfaceError: Error binding parameter 0 - probably unsupported type.
  
  The above exception was the direct cause of the following exception:
  
  Traceback (most recent call last):
    File &quot;/usr/local/lib/python3.6/site-packages/discord/ext/commands/bot.py&quot;, line 903, in invoke
      await ctx.command.invoke(ctx)
    File &quot;/usr/local/lib/python3.6/site-packages/discord/ext/commands/core.py&quot;, line 859, in invoke
      await injected(*ctx.args, **ctx.kwargs)
    File &quot;/usr/local/lib/python3.6/site-packages/discord/ext/commands/core.py&quot;, line 94, in wrapped
      raise CommandInvokeError(exc) from exc
  discord.ext.commands.errors.CommandInvokeError: Command raised an exception: InterfaceError: Error binding parameter 0 - probably unsupported type.
  </code></pre>
  <p>I have tried a few things such as removing random percent signs in case that was the issue, or changing Pokémon to Pokemon. But I don't see what the issue is. A lot of the others were all about people sending in things like Lists or objects to insert instead of some string/int object and I don't believe that to be the issue here. Is there anything that stands out?</p>