2012-03-16 60 views
0

當我嘗試更新我的表項時,我得到這個堆棧錯誤:更新時出錯。附近的「U」:語法錯誤

Error while updating. near "U": syntax error 

我相關的代碼是這樣的:

const char *dbpath = [dbPath UTF8String]; 
     sqlite3_stmt *updateStmt; 


     if (sqlite3_open(dbpath, &contactDB) == SQLITE_OK) 
     { 

      const char*sql="Update quiz set etat=1 where id=?"; 

      sqlite3_prepare(contactDB, sql, 1, &updateStmt, NULL); 

      sqlite3_bind_int(updateStmt, 0, id_quiz); 
      sqlite3_step(updateStmt); 
      sqlite3_finalize(updateStmt); 

      if(SQLITE_DONE != sqlite3_step(updateStmt)) 
       NSLog(@"Error while updating. %s", sqlite3_errmsg(contactDB)); 


      sqlite3_close(contactDB); 
     } 

注:id_quiz包含int值樣1,2等

+0

可以嘗試'sqlite3_prepare_v2'代替'sqlite3_pr epare'。 [sqlite文檔](http://www.sqlite.org/c3ref/prepare.html)不鼓勵使用後者,並指出您可能會收到更多最終的錯誤代碼。 – FluffulousChimp 2012-03-16 11:16:44

+0

同樣的問題,即使'sqlite3_prepare_v2' :( – Luca 2012-03-16 15:06:00

回答

0

在綁定INT I將使用1個索引而不是0

+0

同樣的問題,我仍然有,上面的堆棧表明,我在查詢語法錯誤,雖然它看起來不錯。 – Luca 2012-03-16 12:40:34