1

我想使用本机界面执行一个简单的查询(删除表),并且在尝试准备语句时sqlite不断遇到。SQLITE_ERROR我尝试了所有方法,因为我害怕字符串兼容性(qt 字符串有时会很痛苦),但它总是给我相同的代码如下:

    sqlite3_stmt *query;
    std::string tmp = "DROP TABLE ?";
    if(sqlite3_prepare_v2(db, tmp.c_str(), tmp.size(), &query, NULL) != SQLITE_OK)return     FALSE;
    if(sqlite3_bind_text16(query, 1, str.utf16(), -1, SQLITE_TRANSIENT) != SQLITE_OK) return FALSE;
    if(sqlite3_step(query) != SQLITE_OK) {
      std::cerr << sqlite3_errmsg(db);
      return FALSE;
    }
    sqlite3_finalize(query);

我真诚地希望有人可以提供帮助。

4

1 回答 1

1

您不能将表名作为参数传递(它适用于大多数支持参数的数据库 API,甚至可能是所有数据库 API)。

于 2013-01-21T17:45:08.900 回答