开发者社区> 问答> 正文

obj-c中动态ALTERsqlite 3_BIND_Text语句的语法错误

此代码引发错误。[logging] near "?": syntax error in "ALTER TABLE jobs ADD COLUMN ? TEXT NOT NULL"

NSArray *uArray = [NSArray arrayWithObjects:@"string1", @"string2", @"etc", nil];

    const char *query = "ALTER TABLE jobs ADD COLUMN ? TEXT NOT NULL";
    sqlite3_stmt *compiledStatement = nil;

    sqlite3_exec((sqlite3 *)(db), "BEGIN EXCLUSIVE TRANSACTION", 0, 0, 0);
    if(sqlite3_prepare((sqlite3 *)(db), query, -1, &compiledStatement, NULL) == SQLITE_OK)
    {
      for (NSString *obj in uArray)
      {
          sqlite3_bind_text(compiledStatement, 1, [obj UTF8String], -1, SQLITE_STATIC);
          if (sqlite3_step(compiledStatement) != SQLITE_DONE) NSLog(@"DB not updated. Error: %s",sqlite3_errmsg((sqlite3 *)(db)));
          if (sqlite3_reset(compiledStatement) != SQLITE_OK) NSLog(@"SQL Error: %s",sqlite3_errmsg((sqlite3 *)(db)));
      }
    }

我看不出它在说什么?不能与ALTERT一起使用

展开
收起
游客5akardh5cojhg 2019-12-05 21:37:29 446 0
0 条回答
写回答
取消 提交回答
问答分类:
SQL
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载