title: Getting "sqlite3.OperationalError: no such column:"
body: <p>I am new to python (as I am sure you can tell from my code) and have basically written a sample script to test some core commands so I can better understand how things work. I have gotten everything running as designed except the last "insert" command -- after hours of googling and experimenting I cannot figure out what's wrong, so I would appreciate it if anyone can show me what needs to be changed and helping me understand why (I'm sure it's basic, but am stumped!).</p>
  
  <p>Below is the line that is giving me trouble:</p>
  
  <pre><code>c.execute("INSERT OR IGNORE INTO {tn} ({cn1}, {cn2}, {cn3}, {cn4}) VALUES ({VID}, {VSnu}, {VIN}, {VName})".\
          format(tn=table_name, cn1=column1, cn2=column2, cn3=column3, cn4=column4, VID=ID, VSnu=Snu, VIN=IN, VName=Name))
  </code></pre>
  
  <p>Here's the entire script for context, if that helps:</p>
  
  <pre><code>import sqlite3
  
  sqlite_file = '/test_database.sqlite'    # name of the sqlite database   file
  table_name = 'test_table'
  column1 = 'my_1st_column'
  column2 = 'my_2nd_column'
  column3 = 'my_3rd_column'
  column4 = 'my_4th_column'
  ID = int(123456)
  Base = 'Arnold'
  Snu = 'test'
  
  conn = sqlite3.connect(sqlite_file)
  c = conn.cursor()
  
  c.execute("UPDATE {tn} SET {cn2}=('Snu'), {cn3}=('Muh'), {cn4}=('Arnold_A') WHERE {cn1}=({NID})".\
      format(tn=table_name, cn1=column1, cn2=column2, cn3=column3, cn4=column4, NID=ID))
  
  i = 1
  while(i&lt;15):
  if i == 1: IN = 'B'
  if i == 2: IN = 'C'
  if i == 3: IN = 'D'
  if i == 4: IN = 'E'
  if i == 5: IN = 'F'
  if i == 6: IN = 'G'
  if i == 7: IN = 'H'
  if i == 8: IN = 'I'
  if i == 9: IN = 'J'
  
  ID = ID+1
  i = i+1
  Name = Base + '_' + IN
  params = (Snu, IN, Name)
  
  c.execute("INSERT OR IGNORE INTO {tn} ({cn1}, {cn2}, {cn3}, {cn4}) VALUES ({VID}, {VSnu}, {VIN}, {VName})".\
          format(tn=table_name, cn1=column1, cn2=column2, cn3=column3, cn4=column4, VID=ID, VSnu=Snu, VIN=IN, VName=Name))
  
  if(i == 10): break
  
  conn.commit()
  conn.close()
  </code></pre>
  
  <p>It will write the "VID" item just fine if isolated (which is an integer column and the primary key of the table), but everything after that it interprets as a column and I get the "no such column: [value]" error.</p>
  
  <p>I get this error regardless of what comes after "VID" -- be it any variable, as demonstrated with the command above, or if I try to insert a direct string value. These other columns are simply text columns, if that helps.</p>