我想更新我的sqlite数据库,但我找不到办法,以下是代码:
const char *sqlStatement = "UPDATE frame SET fileExist = '1' WHERE name='$variable'";
if(sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL) == SQLITE_OK) {
NSLog(@"successupdate");
}
从上面的代码我希望我的表更新名称等于$ variable name;如何实现这个?
答案 0 :(得分:11)
你快到了。
const char *sqlStatement = "UPDATE frame SET fileExist = '1' WHERE name=?";
sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL);
sqlite3_bind_text(sqlStatement, 1, variable, -1, SQLITE_TRANSIENT);
int success = sqlite3_step(sqlStatement);
sqlite3_reset(sqlStatement);
请注意,准备SQL语句只会告诉SQLite语句是什么样的。它是sqlite3_bind_text
将变量应用于SQL语句和实际运行它的sqlite3_step
行。
答案 1 :(得分:0)
FMDB是SQLite语句的一个很好的包装器。它负责大部分准备/绑定/步骤/重置苦差事。我强烈建议任何需要数据库的项目,但不想使用核心数据。