SQLite Update语句iOS SQLite3中的可能性

时间:2013-03-16 18:21:53

标签: ios sqlite sql-update

我的iOS应用程序使用SQLite3数据库,到目前为止,我已成功设法创建表,插入值,然后再选择它们。

但是,现在我想更新。我试过这个:

UPDATE field WHERE _id = 5 (name,type,state) VALUES (?,?,?)

但SQLite告诉我WHERE附近存在语法错误

据我所知,SQLite可能不支持上面的语法,而是选择格式如下。

UPDATE field  SET name= "Upper"  type= "Pigs" state=1 WHERE _id = 5;

然而,在第二个语句中注意,没有(?,?,?)(我相信它被调用的参数化查询)用于动态地将值插入到SQL字符串中。告诉我这是可能的,如果是这样的话?

2 个答案:

答案 0 :(得分:3)

你想要

update field set name = ?, type = ?, state = ? where id = 5

答案 1 :(得分:3)

是您可以使用参数化查询,如下所示: -

NSString *sqlString = @"UPDATE field SET name=?, type=?, state=? where _id=?";

sqlite3_stmt *stmt;
if(sqlite3_prepare(database, [sqlString UTF8String], -1, &stmt, NULL) != SQLITE_OK)
{
  //Handle Error
}


if(sqlite3_bind_text(stmt, 1, [record.name UTF8String],[record.type UTF8String],[record.state UTF8String], -1, SQLITE_TRANSIENT) != SQLITE_OK)
{
  // Handle Error
}
if(sqlite3_bind_int(stmt, 2, record.key) != SQLITE_OK)
{
  // Handle Error
}


if (sqlite3_step(statement) != SQLITE_DONE)
{
  // Handle Error
}

您的参数化代码已准备就绪。

相关问题