title: SQLITE_MISUSE in prepared statement
body: <p>I'm getting a SQLITE_MISUSE error on the following code, and I am wondering if it might be caused by having the table name be a bound parameter? What are some different causes of SQLITE_MISUE?</p>
  
  <pre><code>const char sqlNeuralStateInsert[] =
      "INSERT INTO ?1(LAYER_ID, NEURON_ID, INPUT_ID, VALUE)"
      "VALUES(?2, ?3, ?4, ?5);";
  sqlite3_stmt* stmt1;
  rc = sqlite3_prepare_v2(db, sqlNeuralStateInsert, -1, &amp;stmt1, NULL);
  if(rc){
      //!&lt; Failed to prepare insert statement
  }
  sqlite3_bind_text(stmt1, 1, this-&gt;getNName().c_str(), -1, SQLITE_STATIC); 
  for(uint32_t i = 0; i &lt; m_nlayers; i++){
      sqlite3_bind_int(stmt1, 2, i); // Layer id
      for(uint32_t j = 0; j &lt; m_layers[i]-&gt;getNeuronCount(); j++){
          std::vector&lt;double&gt; weights = m_layers[i]-&gt;getWeights(j);
          sqlite3_bind_int(stmt1, 3, j); // Neuron id
          for(uint32_t k = 0; k &lt; weights.size(); k++){
              sqlite3_bind_int(stmt1, 4, k);
              sqlite3_bind_double(stmt1, 5, weights[k]);
              rc = sqlite3_step(stmt1);
              printf("%d\n", rc);
          }
      }
  }
  sqlite3_finalize(stmt1);
  </code></pre>