簡體   English   中英

iOS SQLite3中的SQLite更新語句可能性

[英]SQLite Update Statement Possibilities in iOS SQLite3

我的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字符串中。 告訴我這是可能的,如果是這樣的話怎么樣?

是的,您可以如下使用參數化查詢:

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
}

您的參數化代碼已准備就緒。

你要

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM