【发布时间】:2011-01-27 02:40:51
【问题描述】:
我已将数据库中的数据放入数组中,现在我希望它使用插入查询将其发送回数据库。
如何将数据数组插入数据库?
【问题讨论】:
标签: iphone objective-c sqlite
我已将数据库中的数据放入数组中,现在我希望它使用插入查询将其发送回数据库。
如何将数据数组插入数据库?
【问题讨论】:
标签: iphone objective-c sqlite
遍历数组的内容并构建INSERT 查询。
【讨论】:
插入数据库几乎与从数据库中读取相反。你没有说你的数组的结构是什么,但这里有一些你应该能够适应你的需要的骨架代码:
// Assuming you have the sqlite database opened already
// sqlite3 *sqldb = ...;
// Also assuming you have an array of MyItems holding your data
// NSMutableArray *items = ...;
sqlite3_stmt *insert_statement;
// Prepare the insert statement
const char*sql = "INSERT INTO mytable (field1, field2, field3) VALUES(?,?,?)";
sqlite3_prepare_v2(sqldb, sql, -1, &insert_statement, NULL);
// Iterate over an array of dictionaries
for (MyItem *item in items) {
// Bind variables - assumed to all be integers
sqlite3_bind_int(insert_statement, 1, item.field1);
sqlite3_bind_int(insert_statement, 2, item.field2);
sqlite3_bind_int(insert_statement, 3, item.field3);
// Execute the insert
if (sqlite3_step(insert_statement) != SQLITE_DONE) {
NSLog(@"Insert failed: %s", sqlite3_errmsg(sqldb));
}
// Reset the statement
sqlite3_reset(insert_statement);
}
// release the statement
sqlite3_finalize(insert_statement);
【讨论】: