Sen*_*son 4 sql sqlite objective-c ios
标题几乎是我所有的信息,因为我找不到代码的问题.在下面的代码中使用的相同数据库实例能够成功插入,删除和选择,但此功能不起作用.没有错误代码被恢复(始终为0),并且程序在执行此功能后继续名义上运行.
这是表格信息:
reminder (uniqueID integer primary key autoincrement, title text not null, details text, time integer)
Run Code Online (Sandbox Code Playgroud)
有问题的代码:
- (void) updateEntryData:(ReminderData *)data
{
sqlite3_stmt *statement;
char *updateCommand = "UPDATE reminder SET title = '?', details = '?', time = ? WHERE uniqueID = ?";
int e = sqlite3_prepare_v2(database, updateCommand, -1, &statement, nil);
if(e != SQLITE_OK) {
NSLog(@"Problem with updateEntryWithUniqueID");
NSLog(@"Error Code: %d, message '%s'", e, sqlite3_errmsg(database));
return;
}
sqlite3_bind_text(statement, 1, [data.title UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_text(statement, 2, [data.details UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_int(statement, 3, [data.time timeIntervalSince1970]);
sqlite3_bind_int(statement, 4, data.uniqueID);
NSLog(@"\nID: %d\nTitle: %@\nDetails: %@\nTime: %@", data.uniqueID, data.title, data.details, data.time);
if(sqlite3_step(statement) != SQLITE_DONE) {
NSLog(@"Problems updating entry in reminder");
}
/* Finished */
sqlite3_finalize(statement);
}
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激; 我很难过.
编辑:忘记提到在进入sqlite控制台时使用的sql命令有效.
只需删除参数周围的单引号即可.包装占位符将使其成为值而不是参数.
char *updateCommand = "UPDATE reminder SET title = ?, details = ? .....";
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1523 次 |
| 最近记录: |